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:







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

[1]: Devuan website

[2]: Migrate from Debian Bookworm to Daedalus

[3]: OpenRC/Stacked runlevel - Gentoo Wiki


Source