For servers stability is most important, so Debian.
Linux
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
Can't go wrong with Debian on servers. Stable, secure and long term support. Very minimal install also.
Maybe also look into Alpine. It might be a bit lighter, if that's an issue.
Debian, maybe?
You will need a pretty light distro since you only have 2GB of Ram. Normally I would recommend containerized workloads, but 2GB RAM are just a bit too small.
Your distro choice should also be made based on the frequency of maintainance and package availability.
In the server space you have some contenders.
Release based distros: Ubuntu is your beginner friendly go to recommended distro. Very well documented and with automatic security updates. In my opinion its okay but a tad bloated. Ubuntu has yearly release cycles but the LTS versions have longer support so you don't have to upgrade your whole distro. Ubuntu uses apt package management.
Debian would be the next normal choice. Also apt based with almost yearly releases. No bloat, but also no auto features. You are more on your own. Similar to Ubuntu.
Fedora server is also a more beginner friendly got it all distro with better modularity and very recent packaging. Fedora uses dnf. Be aware that fedora has tight release cycles on which you have to upgrade every time. Fedora has virtually only a small grace period between releases.
Centos/AlmaLinux/RockyLinux are all RedHat Linux clones without the enterprise support but with the same packages. Rock solid distro used in the enterprise server industry. Very well documented and known. Due to enterprise world also a bit outdated. But I found packages that are newer here than in the Debian repos. Those distros also use dnf/yum.
OpenSuse Leap is also a Good distro. I can't say much to it because I didn't use it so much. Opensuse is well known and has a good knowledge base. There is also opensuse Tumbleweed wich is a rolling release distribution.
Rolling releases: Rolling releases are distros wich don't have real release cycles but are more or less "rolling" no big upgrades needed but more of a once a mont maintenance type distro.
There is centos, archlinux, nixos, opensuse Leap and probably a lot more. Nixos is pretty special and I don't really recommend it so much for beginners.
Last category auto updating, immutable micro distros wich are mostly used for container hosts. This distros are made for only hosting containers. You have to take care of the right storage setup and be aware of all the special quirks it comes with. Best ones are Fedora CoreOS, Flarcar Linux and Opensuse MicroOS. Those are "low maintaince" but only if you really know what you are doing. Steep learning curve and non standard procedures.
Hope this helps a bit.
Feel free to correct me :)
Fedora has virtually only a small grace period between releases.
This part is inaccurate. Fedora releases every 6 months, like Ubuntu interim releases, but supports them for 18 months. Additionally, Fedora supports skipping a single release. So, for example, you could run Fedora 35, skip 36, and upgrade straight to 37. While not supported as long as the Ubuntu LTS, Fedora is supported for longer and more flexible than the Ubuntu interim releases.
Yes that's correct. But I see 18 months maintaine windows for a complete distro upgrade is fairly often. Ubuntu Interim is in my opinion not really suited for server applications due to the small support windows.
Rocky Linux9 security EOL is in 8 years for the other end. In that context fedora is a lot more "short lived".
"There is also opensuse Leap wich is a rolling release distribution."
Leap is not a rolling release. Tumbleweed is the rolling release.
Thanks for pointing out, corrected it right away.
My server is 2 GB, and for self hosted stuff it's good enough. Granted, I use Gentoo, but I wouldn't expect debian would be much higher unless you're running something.
I run postgres and a file server on mine. I've previously ran NextCloud. It was a liiittle slow, but I think I was CPU bound (raspberry pi).
Tbh all modern mainstream distros are lightweight I give you that. But there are always exceptions. Something like PopOS (I know not a server distro) can hog a lot of resources, so those are not suited.
I think the key here is to favor stability than latest features as you don't want your server stopping due to bugs.
So the systems being recommended here, like Debian and Ubuntu LTS are good.
Ger more RAM if you can.
Use Debian. It's super stable and the deb format is the most popular.
Don't use Ubuntu because Snaps will eat all your space and RAM. Avoid like the plague!
If you want remote desktop then it sounds like you want a desktop OS instead of a server OS. For servers you usually just SSH in without a graphical interface.
Sorry, I meant remote desktop server software (like RustDesk's server).
I use DietPi which is Debian with nice installers that set things up for you for a lot of things you would want in a server. You can run it on a ton of devices including an x86 desktop.
@stellarforce @tester1121
Same here! I've been using DietPi for my server needs on a Raspberry Pi and it's been fantastic.
+1 for Debian
I use Arch on my personal computers but on servers I usually opt for Debian unless I'm planning to run bleeding edge software.
Slackware, Debian, NixOS/GUIX
files, media etc
Sounds like you're after a file/media server primarily? If so, you should check out TrueNAS. It's based on FreeBSD, which has lower resource usage and better networking performance compared to Linux, also, it has native support for ZFS, which is one of the best filesystems you can use for file storage.
although I wouldn't run TrueNAS in 2 GB of RAM
I generally spin up Debian on servers and VPS
Raw requirements scale with storage size, 2GB for a small SSD is plenty
TrueNAS Docs would disagree with you
Link? I don't think I had a problem unless fucking around with deduping or too many services
Nixos for everything 😹
Unless you need some special "enterprise" functionality I think just about any can be an effective server.
There are advantages and disavantages for using rolling release or release based distros.
Generally speaking rolling release distros needs maintenance more often (such as running updates and stuff), however you may choose not update. Anyway, rolling release distros are more up-to-date with the packages, if you care about it.
Release based distros requires less maintenance, cause its base is more defined. The maintenance would be update once in a while for security patches. Despite this kind of server may be installed for years with low maintenance, for once in a while you'll be required to do a full update, changing the base.
I'm personally on the rolling release side. I run Arch Linux as a private VPN server in a old laptop. For once in a while I run pacman -Syyu
(maybe once in a week) and that's the maintenance I do with no issues. Arch Wiki itself is hosted on a Arch Linux server as well.
Anyway, if you want a release based distro I recommend Rocky Linux or Fedora Server. If you like rolling releases more, I'll suggest Arch.
Ubuntu has good documentation.
What's the goal? Reliable hosting or an educational experience for yourself? Do you want to specifically learn Linux or do you want to learn about reliable hosting?
For files/media/storage I personally use FreeBSD with ZFS storage for the server. I access my media from my Linux (pop os) devices using Jellyfin, samba, ssh/sftp, nfs, etc.
Alpine Linux would be one of the lightest distributions to make the most of your hardware. I use it myself to host my docker services.
Alpine stable
I have openSUSE MicroOS on my server as it comes with great (for me) defaults and has grrat SELinux base without much config.
MicroOS has been great for me as well. Run essentially everything as a docker container, manage it using portainer, use caddy as the server/proxy, and everything is easy peasy now. It restarts every night for an update but you can adjust that if needed. Rock solid.
The big choice here is: do you want rolling release or stable? Most servers are stable, but endeavour is rolling.
Stable release means your distro's repository's packages rarely change behavior. This is because they lock the versions and only bring in security updates. Pros: things will almost never change when you update, which means you won't have to be fixing things when updating (unless updating major version of your distro). Cons: you're stuck with frozen versions. Those can be years old sometimes. As long as you're okay with not using new versions of what you're using, you should be fine.
If you like stable, go with debian stable for 5 year release / update cycles, debian testing for 2 (or Ubuntu server), or the red hat one for 6 months (I forgot its name).
Rolling release means you have to update frequently and you always get the latest version, remaining very close to upstream. This is unpopular for servers as it means an update might bring changes you don't expect, and you might have to change a configuration or maybe even more. If you like this, OpenSUSE tumble weed is a good choice, or good old Arch.
You also have Gentoo and NixOS, but I don't know if you'll be wanting those.
I recommend Debian for a server, if you value stability and stuff just working. Plus, a lot a guides are written with Debian/*buntu in mind!
Alpine Linux. It’s super lightweight
I would not suggest alpine to someone who has to ask about a distro for a server. Not being glibc based can cause pain, especially for running items that may not be open source.
I’m literally using it as a server and also as the base of a ton of Docker containers running in production. Those containers compile in many dependencies and not once has there been any issue other than the DNS bug resolved in 3.18.
Ok go run Virtualbox on an alpine distro and let me know how that goes for you.
But why? I don’t have a need to run that on a server; I think it’s easy to ascertain I containerize my workflows rather than spin up entire VMs.
Go install systemd then. Last I checked that doesn't work without glibc.
So here’s my thing: not once has this been required for me to run any type of server on Alpine Linux.
I think you’re confusing using it as a desktop environment or a “server” in the sense that you just want to do a bunch of stuff from a GUI.
Maybe I’m wrong — I’m just speaking from personal experience — but right now it seems to me you might be relying on edge cases to prove a point.
At this point there are many others also suggesting Alpine Linux so if you’d like to continue this conservation maybe those people have more insight into this problem.
Don't use arch, a lot of server software I use don't have arch builds so I had to use distrobox to get the software.
I just use docker/podman containers on my Arch Servers, not a single time I needed to rely on distrobox for anything
Yeah, well distrobox is just a wrapper around podman. I prefer installing some server software outside of containers though. Interaction with distrobox is closer to the feeling of using software outside of a container. Dealing with docker networking and storage can be kind of a pain.