Gentoo on The Server
So after my last post I almost immediately installed Gentoo Linux on my server and I have been using that so far.
I chose it because I'm already familiar with it and I'm sure I can improve the runtime of my programs. I currently do not have my own kernel simply because I don't want to risk many hours of downtime but that will change eventually once I become familiar with the Linux Kernel.
Getting the services to work
I run email, web radio, xmpp, postgresql on bare metal, while everything else runs inside Docker.
With docker is very simple to manage a program, I can quickly add and remove services and I have many configuration options as well as the possibility to make my own containers that are sometimes faster than the images available by the developers due to unnecessary features and dependencies being added. However, Docker adds many new issues that could in return make things actually HARDER to manage.
Docker
Containers run a "snippet" of an operating system, or rather, everything needed to run a specific application (a minimal filesystem with a base OS, core libraries and package manager). This obviously comes with some overhead which might be very noticeable in some places.
Another big issue is debugging. All images are made different some containers might not even have logs leaving you clueless. Not only that if the issue is with the image itself it will be more complex to fix the issue as you might have to rebuild the image multiple times as you edit it, depending on the image it might take just a few seconds or many minutes.
In the end it really is added complexity but I also can delete everything related to a container really quickly, it really is like a mini virtual machine. I test the things I want to put on the server on my computer before deploying and its basically guaranteed that its going to work
Licensing
Gentoo's package manager has a cool feature that I think it might be overlooked. On the make.conf file a can add the line ACCEPT_LICENSE="-* @FREE" and that will only compile FSF-compatible or OSI-approved packages, meaning that outside the containers I can have my system run only free and opensource software, avoiding creepy goy spyware from the CIA.
Stability
I never rebooted the server once, my current uptime is 16 days because the light went out and the UPS did not trigger fast enough. However, compared to alpine, it does boot faster because the system mounts the filesystem correctly while on alpine it would fail to mount root
Another thing that makes Gentoo more stable than alpine is the updates. Gentoo is a rolling release distro with both a "stable" and "testing" repository, and so far I never encountered any issue with programs on the stable repository. Updating is also a breeze, telling you what flags you need to enable to install a program as well as asking if you would like to update certain files (accepting this usually means losing configs...) which is somewhat nice when configuration syntax changes.
Overall
Great experience, faster, more stable than alpine. Also a lot more control over the software that runs on it.
