Freeing a VPS from systemd with Devuan
April 25, 2025 :: 5 min read
Introduction
The problem with many VPS providers is that they lack the possibility to use custom ISOs. Most of the time, the distributions that users can choose from are Ubuntu, Debian, Fedora, and sometimes a few others. Unfortunately, all of these distros use systemd as their init system and service manager - but also as their logger, bootloader, dns resolver, etc. (which is one of the many reasons I don’t like systemd).
I have been avoiding systemd for the last two or three years now, and using it is not an option to me. However, for personal reasons, I recently had to use a VPS from a specific hosting provider which didn’t support any systemd-free distribution. Therefore, I had to install Debian on it.
Honestly, Debian is a really great distribution, and it was one of the few non-commercial distributions available with this VPS. The one and almost only problem I have with it is the fact that it depends on systemd.
Devuan comes to the rescue!
After installing Debian, I wasn’t ready to give up and submit to systemd just yet. I remembered hearing about Devuan [1] (which is essentially a systemd-free fork of Debian) a few years back, but I wasn’t sure whether it was still maintained. Turns out it is!
After browsing the Devuan website for a few minutes, I noticed that there was a page containing instructions for migrating from Debian to Devuan [2].
The migration instructions are pretty straightforward. I followed them, feeling excited about the idea of running Devuan on the VPS. When I installed sysvinit, systemd got removed, and I got worried that sshd wouldn’t be started automatically after a reboot, because I wasn’t sure whether the service was enabled by default with the new init. But the maintainers thought about it, and I was able to ssh back into my server after rebooting.
After that, it honestly felt pretty satisfying to be able to run:
sudo apt-get purge systemd libnss-systemd # Hell yeah!
Customizing a bit
The default init script of Devuan is sysvinit, which is the one I initially installed (since it was the one recommended in the migration instructions, I wanted to ensure that the migration would be successful before starting tweaking my system). Being a huge fan of openrc, I decided to use it instead. Again, the change from sysvinit to openrc was as simple as running:
sudo apt install openrc
The package manager automatically took care of removing sysvinit and adding required services to different runlevels. It even told me how to reboot properly after performing the changes.
Bye bye, sudo!
I also wanted to replace sudo with doas. I tend to prefer the latter over sudo, because it is much more minimalist than sudo, and also because the configuration for doas is way simpler, both to understand and to write.
After installing and configuring doas, I wanted to get rid of sudo completely. To do so, I had to define a password for root, before being allowed to remove it (which, by the way, is a nice feature to ensure that the user doesn’t get locked out of the root account).
What I liked about Devuan
I am still new to Devuan, even though I have a solid experience with Linux systems in general. After using it for a few days, I can say that I like it a lot, specifically because:
- It gives its users the freedom to choose their init system, and supports quite a lot of them.
- The instructions for migrating from Debian to Devuan are simple and they work properly.
- The migration process is well designed: all services that need to be started are actually started by the new init after systemd is removed.
- A large variety of software is available in Devuan’s repositories (almost every single one that is available with Debian). As members of the Devuan team kindly explained to me, this is because most packages in the Devuan repositories directly link to upstream Debian packages. Only the packages that have a hard dependency on systemd need to be forked, or removed from the repository index when a fork isn’t possible.
- It is maintained by volunteers, not a corporation.
- Their distribution logo is cute.
What I liked less about Devuan
Honestly, I liked almost everything about it. The only thing that bothered me a bit was that services get automatically started and added to their runlevel when the packages are installed. Being an Artix and Alpine user myself, I am not used to this and I like to edit the configurations before starting the services. I also like to have stacked runlevels [3], and to be able to add the services to the runlevels I want.
That said, I do understand that runlevels can be confusing to new users, and that Devuan probably aims to be more beginner-friendly than Alpine or Artix do. It probably also makes it easier to migrate from one init system to another. I also think (but am not sure since I don’t use those very often) that enabling and starting services by default once they’re installed is not specific to Devuan, and that this kind of behaviour can also be found on major distributions such as Debian and Ubuntu.
In conclusion
In conclusion, Devuan is a really great distribution, and is a crucial element in the path towards init freedom. I haven’t used it for very long, but I am deeply greatful to the sysadmins, developers, packagers, community managers and everyone else who makes it possible to use Debian without systemd.
Since Debian is one of the most used operating system on VPS and servers in general, it is particularly nice to have a way to use it without having to give up your freedom to choose your init system. If, like me, you’re also out of options for running a systemd-free OS on your VPS, I seriously recommend you to check out the instructions for migrating from Debian to Devuan [2].
A special thanks to the folks from the Devuan team who agreed to read my article and give me more details about the distribution and its community before this article was posted.
Footnotes
[2]: Migrate from Debian Bookworm to Daedalus
[3]: OpenRC/Stacked runlevel - Gentoo Wiki
Source