Trying to make my first server, stuck on OS choices

tester1121@lemmy.world to Linux@lemmy.ml – 53 points –

I have made a decision to start a Linux server for some projects (files, media, etc.). However, I don't know what would be a good server for me to use. Is there any good choices for me to use? I use EndeavourOS for my laptop and my desktop, if that matters.

Server specs: 2GB RAM 240GB SSD

(This is my first server, hopefully I will be able to upgrade after some time)

44

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.

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.

I use Arch on my personal computers but on servers I usually opt for Debian unless I'm planning to run bleeding edge software.

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

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.

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.

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.

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!

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.

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.