For a good long while now I’ve been hosting a bunch of different services across different servers. Given that I started this tradition before I was particularly proficient with GNU/Linux and *BSD, I have usually taken to using Ubuntu as a crutch of sorts. Now, there’s nothing wrong with Ubuntu per se, but it nearly always has more than I need preinstalled and removing software is a bigger risk than adding it.
I’ve used Alpine before, believe it or not. I actually use it all the time in Docker containers, so I’m pretty used to some bits and pieces like
apk, the package manager, and OpenRC, the init system. I’ve made use of the latter in Gentoo and Artix so I’m fairly au fait with it. However, I’ve never used something as unusual as Alpine on a desktop. Its use of musl in place of GCC and its focus on biting simplicity by default make it somewhat unsuited (I believed) to powering a home machine.
In the first instance, anyhow, I focused on migrating my existing Ubuntu servers over to Alpine. Having recently closed down my Mastodon and Gitea servers to new users, these were the first to go over. All went pretty smoothly, though to be fair the requirement were minimal given that each service is hosted in containers so it’s really just a case of using rclone to copy information from one to the other then… recreating the containers. The Funkwhale migration required a small amount of additional warning, but all was done in under an hour. The delay was mostly in DNS propagation for letsencrypt to work.
All in all, I’ve been able to reduce my operating costs by a not-unimpressive $20 a month by moving these services from one big Ubuntu box to three smaller Alpine machines. The OS is incredibly quick and needs very little love to keep it going, and everything appears to run a lot better (Docker builds are noticeably quicker across the board). This also means it is easier for me going forward to make changes to these services such as scaling up Funkwhale while leaving other services small and intact. It’s neater this way and I much prefer it.
Ah yes, I hear you say, but what about the desktop? Well, this was a silly fancy of mine. A system that ran so well on my servers was enticing, to say the least, and the research revealed that — due to the presence of Flatpak in the Alpine repos as well as the large volume of native packages already present — I wouldn’t miss out on too much migrating from Fedora to Alpine. Nvidia would probably never work properly due to its dependence on GCC, but I quite frankly never play games. My next machine will not have an Nvidia card, I don’t think. I’ll shop around for something better suited to Linux.
The Alpine wiki doesn’t have a patch on the Arch wiki, for sure, although a lot of the information is transferable between the two. Alpine misses some pretty important steps in its setup instructions and expects a great deal of knowledge on the user’s part around essentials such as daemon management. My first install attempt was disastrous, not least because I chickened out of a KDE install and reverted to a GNOME install, leaving me with a completely broken GNOME installation that would only work on X11 (weirdly the KDE one only worked properly on Wayland). Having learned my lesson somewhat about planning things ahead of time I mustered up the courage to try again and this time I got it right.
Even with the full suite of software installed by the gnome and gnome-apps metapackages the system still makes no assumptions for you. This is one of Alpine’s major appeals, so I’m not knocking it, but as a normal desktop user you just have to be careful about certain packages not being installed as dependencies because they’re not explicitly required. This can mean a lot of scratching your head over why the thing you installed isn’t working: installing that package works fine in Debian!
Even running GNOME (beast that it is) the system is noticeably snappier than Fedora. If I were to start again I think I would ditch the gnome-apps metapackage and plump for installing the system piecemeal with more care over exactly what was needed, but for the time being I’m perfectly happy with it. Not a particularly difficult install, smooth running, decent community support. I can see it getting a lot more popular.
As previously mentioned Baku Social and Gitsune have been put out to pasture. Both were fun experiments, but ultimately they were more effort/money to manage than they were worth. Both received a high volume of spam accounts that had to be managed and removed, and ultimately the actual interest in them was non-existent. I’m going to continue running Baku Social as a personal instance. I like having my own server and I think it’s nice to keep a unique handle. Gitsune will be going offline for good, however. I’ve migrated everything off of there to Sourcehut, so I will be putting the hosting money to a service that’s got a lot more promise.
All is not doom and gloom, however. Tanuki Tunes continues to increase in popularity as a testbed for new Funkwhale features. Stepping away from the sheer number of services under my control will allow me to focus more resources and time on Tanuki Tunes should things need to be scaled up at all. Given how well it’s running even at the current load this hopefully should not need to happen for a while, but it leaves us with options.
Until next time!