I use Debian as my daily driver, but I’m still a newbie. I would like to selfhost a few apps, initially on a VPS, but I will probably move to a local PC once I diagnose what is broken with my old computer.
The guides at https://selfhosting.sh/ always recommend Ubuntu Server LTS for newbies, but Ubuntu seems to have bad PR and I already run Debian on my home PC. On one hand, I am a newbie and I guess Ubuntu might be easier to set up and maintain. Though, I don’t HOW exactly? On the other hand, if I have Debian on my home PC and on my server, they are the same system, so I’d be learning the same system at two places and with two usage scenarios. But it might be easier to make mistakes on Debian…?
What is your opinion/recommendation?
EDIT: thank you everyone! My gut feeling was Debian and your responses were overwhelmingly in favor of Debian, so Debian it is :)
Debian is better as a server host. Ubuntu is not easier for a server for anything except initial installation but you’ve already done that once with Debian so you’ll be fine. Only reason to use Ubuntu is if you want core software updates every 6 months and for this purpose you don’t. And can still have the option for newer software in select cases using containers.
I use Debian as my daily driver
Chances are that you would find Ubuntu not just more complicated, but unneccessary complicated.
Stay with Debian. It can do everything.
I find Debian to be the best choice unless your server requires GPU compute or transcoding, then Ubuntu becomes a better option.
I have no issues with those tasks on Debian. I would never recommend Ubuntu for a server.
Never Ubuntu, debian for server, fedora for desktop and arch/cachyos for tech fun.
Are you me?
I used to be the same but honestly arch has been way more stable and easier to use than fedora ever was.
If you’re already using Debian on desktop, then Debian on a VPS makes sense from a maintenance perspective: you only have to track one set of security updates. When there’s suddenly a critical update for some vulnerability, you can update both at once because it’s the same upstream repos. Whereas with Ubuntu on your VPS, you’d have to be mindful to make sure to check back when the same vulnerability is patched there.
Do not underestimate the effort to upkeeping a server, and do try to unify your procedures so you’re spending less time doing the necessary things, and more time building up your self hosting stack.
<Pops popcorn> Don’t mind me, I’m just here for the violence. LOL
I’m using Ubuntu Jammy LTS/ESM.
I’ve got one Jammy box and one Resolute… I don’t love Canonical, but not enough hate to migrate my hosts to another distribution
It’s just something I got comfortable with long time back, and since I can drive that bus, and it does what I need it to do, I just stuck with it. I’ve never run a full blown Debian OS, so I really can’t compare the two except to say that it’s Linux.
I’ve never run a full blown Debian OS
Ubuntu is literally just Debian with Canonical’s bullshit on top.
This is a safe space. We don’t kinkshame here.
@steel_for_humans
on a VPS you will exclusively have a terminal with ssh
to me Debian is the only choice, while you will be able to do the same, but keeping freedom rather then apps taking your hand for nothing more
Ask AI for special things, it’ll be easierEither is fine.
I tend towards ubuntu lts pro with automatic upgrades and reboots. Much like the guide you mention pretty much everything targets ubuntu lts.
I tend towards ubuntu lts pro with automatic upgrades and reboots.
This can be done easily on Debian, too. Without an artificial limitation.
Definitely Debian. You’re already used to it and personally I highly value the stability it brings for servers.
Ubuntu’s “reputation” is nonsense. It’s a great distro for servers. Security updates are really fast and using snaps in a server environment is really great. I recommend running things like Docker or Tailscale off snap. They will revert to a previous image if an update fails. Extra stability for a server as you run automatic updates.
Ubuntu will have more recent packages, that doesnt really matter in a server environment. Debian is otherwise fine, I just dislike it’s installer and prefer Ubuntu’s. I fond it easier to sync third party drivers on Ubuntu.
Ubuntu Pro gets you livepatches for kernal issues, which may be worthwhile.
Ubuntu Pro gets you livepatches for kernal issues, which may be worthwhile.
I use Ubuntu ESM. For their free, personal tier of Ubuntu Pro, you get 5 machines or 50 for active community members.
SNAP also doesn’t work well with old hardware because of compression. It’s ironic to recommend system riddled with incompatible compression to someone who explicitly wrote in a post that they would be using outdated hardware.
I think that’s more of a Ubuntu Desktop concern. My thinkpad has a 4th gen i5 and launches Firefox maybe half a second slower on a fresh reboot and afterwards its normal.
Its really not relevant to a server who has all the time in the world to boot and stays up. Once the snap is launched, its launched, works fine afterwards. It’s all cached in the RAM or temp data or whatever afterwards.
Ideally your server install would be on an SSD and your data on HDDs. Performance will be good with that setup.
Never mind what’s ideal, in reality, one of my servers is running on a Core 2 Duo T7600 and when I installed ubuntu on it, it took 24 minutes to boot due to the unzipping of the base snap image in ubuntu server. Older hardware does not become faster just because os requirements change. And yes, I left ubuntu as soon as snap came out, i think that was 2018.
UPD: and of course I’m not going to change one of the local servers just because Canonical decided to release another system. Thanks. For 20 years the processor has been routing packets and will do so for another 20 without any problems. Just switched to another OS.
Yep this right here, I have used Ubuntu LTS for servers both my own and for work for years now and it works fine. I also don’t think snaps are as big of a deal as people make them out to be, the only snap I am actually forced to use is the mass snap and that is a canonical product so whatever. I even use it on some rpi4/5 even and it works great for use with workloads suited for a pi. Now, 10 years ago this was a different story, but these days Ubuntu LTS is a great OS overall.
Debian is also great though (and if I was building some sort of appliance OS I would prob start with that since it has the fewest customizations to start with) but after you use any of the deb based distros enough they are all basically start to look the same to operate so pick one you want to learn and use that until you have a reason to change, learn the tools not the distro and you will be fine.
All of that said though, every distro has idiosyncrasies but the Linux CLI skills you learn are definitely transferable so it’s not as big of a choice as it is made out to be sometimes, especially now that containers and systemd are everywhere. That is …unless you decide to pick Solaris or one of the BSDs but those are a whole other animal 😀
Yeah an appliance distro would be a different consideration. For me Ubuntu is really flexible and a great docker host. I feel it’s safer to tinker with since you get those extra layers of containment and sandboxing.
If I was to build an appliance I might also start with Debian, but so far I have used FreeBSD. Works great on my NAS, where I use XigmaNAS. You can transfer a surprisingly lot of skills. Learning what was common to FreeBSD and Linux really helped me with cli.
I’m curious to try making stuff with Ubuntu Core. I think it has potential, but that’s a future deep dive and project. lol
Hah same here, core has been on my list for a while especially for the pi but i keep getting distracted :D
As someone who has both Ubuntu servers and Debian servers…go with Debian. It does everything Ubuntu does, but leaner and better.
It does everything Ubuntu does, but leaner
Didn’t downvote nor do I understand why someone would, but I’m curious. When you say ‘leaner’, is it leaner that standing up a minimal installation of Ubuntu server? This is what I’ve been doing for a long while, and then adding whatever I needed, which turns out to be minimal, down the road. My reasoning would be less exposure from apps that are unneeded in my scenario.
A standard install of Ubuntu Server uses more RAM, has longer boot times, and generally just needs more resources to get going. You can strip some of that out, but Debian is that way from the start. Plus, Ubuntu is just Debian with extra shit on top.
Debian is also much longer lived and stable than even Ubuntu LTS releases, so I generally have just found it to be better suited to deployments where I don’t want to fuck with it for a long time, besides monthly patching.
@chronicledmonocle @irmadlad The irony is that when Ubuntu was created in '04, one of the first features they worked on (after the initial 4.10 release) was fast booting. Debian at the time used sysvinit and booted pretty slowly. And in addition, long-term support.
Those things eventually made their way into Debian through various means; I haven’t messed with Ubuntu in years, but it’s very amusing to me to hear that Debian might boot faster than Ubuntu.
I run Debian on my homelab and manage Ubuntu Servers at work. I haven’t seen any practical differences between the two. Sometimes you might get a bit newer version of something from the Ubuntu repositories than from the Debian ones but not even once has that been an issue and most of stuff I use come from 3rd party repositories anyway.
@steel_for_humans I’m a debian sucker, so I’m realy biased. I don’t like how ubuntu do things, like snaps default and that kind of thing. If you don’t need nothing bleeding edge on your server, I guess debian is good enough. And you can alway use containers to get the hot and new stuff.
You’re installing a headless system right? Ubuntu and Debian are going to have very similar if not downright identical day to day operating procedures, including installing and setting up new things. Ubuntu is going to have software packages coming from a different repository and they may be newer (though this rarely matters) and the initial install may be different. One is backed by a for profit corporation and one by a large open source community. Whenever you need help, guides for Debian will probably work on Ubuntu and vice versa.
For home self hosting use, it boils down to you own philosophy. In practice, it won’t really matter… they’re both really similar.
I proudly use Debian BTW.
One thing I read about is that Ubuntu provides unattended updates, so it can automatically update packages and restart the server (that seems a bit too far ;) ). It’s probably possible on Debian but not out of the box.
Debian also supports “unattended-upgrades”: https://wiki.debian.org/PeriodicUpdates
I actually have it set up the same way on both: Automatically install updates (and restart some services), but don’t reboot. I don’t think it was different/easier on Ubuntu.
Overall, the two distros are very similar for a server application. If you’re already running Debian on your PC, I would also go with that for a server.
One thing I read about is that Ubuntu provides unattended updates, so it can automatically update packages and restart the server (that seems a bit too far ;) ). It’s probably possible on Debian but not out of the box.
Ubuntu automatically has unattended upgrades, which makes I think makes it a popular choice for VPS providers to push (beyond being popular in corporate/institutions overall), since they don’t have to worry about users forgetting security updates. However, it doesn’t enable automatic reboots. But, it does look like automatic restarts of services updated via unattended upgrades is done, but only as of Ubuntu 24.
Another thing to note is that Ubuntu has updates that are explicitly for security, and then everything else, including more general bugfixes and program updates with additional features. By default, unattended upgrades on Ubuntu only do security updates.
Of course, both a unattended upgrades and automatic reboots are possible on Debian (same software, Ubuntu just preconfigures it), although default configurations can vary. I wouldn’t be suprised if a VPS provider was shipping a default Debian configuration that enabled automatic upgrades.
On Debian, for the most part, ALL updates are only for security issues or severe bugfixes (program crashes or the like). Debian, for the most part, doesn’t do minor bugfixes at all, or do program feature updates. I prefer this model, since it’s easier to manage than having separate types of package updates. It ensures absolute stability, a guarantee that the system tomorrow will behave the same as it did yesterday, while still enabling automatic security updates. This model is ideal for a server I don’t want to babysit, or for your grandpa who loses his mind when the button he is supposed to click was moved one spot over.
In addition to that, I like the policy of automatic reboots. With the stable, slow moving nature of both distros, it’s safe to automatically reboot to ensure that kernel vulnerabilities, or vulnerabilities in other critical systems are fixed. Automatic updates and reboots can be the difference between someone being able to escape a docker container or someone not being able to.
There is one thing to note, is that adding additional repos (or PPA’s which technically you aren’t supposed to work on Debian), can be dangerous, and you have to be careful: https://wiki.debian.org/DontBreakDebian/#Don.27t_make_a_FrankenDebian
The main problem is that if a third party repo and Debian provide the same package, and the system is configured to prefer the third party repo, then you can be installing a potential dependency to the rest of your system that isn’t actually tested against your system, or compatible.
You have to be really careful to ensure that the programs in the repo are actually built and designed for your system, and also that the your system does not default to installing them.
Third party repos also break the guarantee of stability that automatic updates depend on. Third party repos don’t have a separate security channel, so Ubuntu will probably avoid touching them, even if critical security fixes are needed. Debian will update them, but unlike Debian’s packages, the overall program updates won’t be guaranteed to be behave the same due to potential major/minor version changes.
For example, if you get Docker from docker’s repo instead of Debian’s/Ubuntu’s, now your version of docker can no longer auto update and receive potential security fixes safely.
Overall, I prefer Debian but Ubuntu is fine. If I was in an environment that used Ubuntu already, I would also just use Ubuntu. If you are already using Debian, then Debian is probably preferable.
Yeah, I would go with Debian for sure.
Although… I’m experimenting with Fedora IoT (the name might be misleading) for my server OS right now…












