Welcome to Incremental Social! Learn more about this project here!
Check out lemmyverse to find more communities to join from here!

what will be my next server operating system (Fedora Server, Fedora CoreOS, NixOS), your experience and opinion

I want to reset my server soon and I'm toying with the idea of using a different operating system. I am currently using Ubuntu Server LTS. However, I have been toying with the idea of using Fedora Server (I use Fedora on my laptop and made good experiences with it) or even Fedora CoreOS. I also recently installed NixOS on my desktop computer and find the declarativeness pretty cool (but I'm still a complete beginner) and could imagine that it would fit well into a server setup.

I have quite a few services running on my server, such as Nextcloud, Conduit (Matrix), Jellyfin, etc. and all in containers. I would also rather not install programs without containers, because 1. compose is super easy to maintain and set up, 2. it remains very clear with containers (and compose) and 3. I believe that containers are more secure. But since I also want to make the services inside the containers available, I currently have Nginx installed as a reverse proxy (not in the container, but on the system) and always create certificates with certbot so that I can use HTTPS encryption.

In the paragraph above I actually described exactly the use-case of Fedora CoreOS, but I have no experience with the system and how it works. That's why I'm still a bit hesitant at considering the OS at the moment.
I can imagine that NixOS with its declarative nature seems well suited, since, as I have heard, you can configure containers as well as Nginx and with Nginx also https certificates declaratively.
But I could also use a base system like before (Fedora Server or Ubuntu Server) and simply install podman, nginx and certbot and manage everything that way.

Have you had any experience with Fedora Server, Fedora CoreOS, NixOS or a completely different operating system for servers and what are/were your impressions with this setup? Or do you just want to share your knowledge here? I would be delighted.

realbadat ,

Proxmox.

Each service becomes an LXC. Docker containers can be migrated to LXC, or be contained within an LXC dedicated to docker.

Running out of processing power? Add another server, add to a cluster, and migrate services (LXC or VM) over.

Having run Fedora, Debian, Ubuntu, CentOS, RHEL, slack, even Oracle Linux - Proxmox is what I run for myself (and some clients).

mobergmann OP ,
@mobergmann@lemmy.world avatar

I don't know if the use-case you describes fit into my problem. I only have one server and its a physical server. I'm also not really able to extend the number of servers, as I don't really have the budget.

realbadat ,

Proxmox is a server OS based on Debian which is oriented on running virtual machines and Linux containers.

The physical server runs proxmox. The services can all be individual containers (LXC's).

Adding to the number of servers (and migrating containers later) is a benefit of Proxmox, since you can buy another PC to be a server later, and easily expand as you go.

sunstoned ,

I tend to not use the webui, so I prefer the similarly useful combination of Debian + Incus (spawned from the LXC project).

Sure, HA isn't baked into Incus (to my knowledge) but similar to OP I only have one physical box and don't necessarily care to manage multiple.

That being said, Proxmox is a good solution in the scheme of things and generally a good recommendation.

realbadat ,

I've got a small fleet of tmm's, so HA is just practical for me, but yeah that works to with a single machine. Especially if you were sharing desktop use on it.

Decronym Bot , (edited )

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer Letters More Letters
HA Home Assistant automation software
~ High Availability
HTTP Hypertext Transfer Protocol, the Web
LTS Long Term Support software version
LXC Linux Containers
SSH Secure Shell for remote terminal access
VPN Virtual Private Network
VPS Virtual Private Server (opposed to shared hosting)
ZFS Solaris/Linux filesystem focusing on data integrity
k8s Kubernetes container management package
nginx Popular HTTP server

[Thread for this sub, first seen 11th Apr 2024, 15:35]
[FAQ] [Full list] [Contact] [Source code]

sunstoned ,

Good bot

towerful ,

I always think about using nixos. But considering I dockerise everything, I always end up using Debian.
Good old stable Debian

mobergmann OP ,
@mobergmann@lemmy.world avatar

You can also use container within NixOS and AFAICT even declare the containers which should be running. Also NixOS is sad to be stable, or am I missing something?

lemmyvore ,

Just that compiling packages on a server is not ideal.

corgi ,

Nixos will use/download cached binaries that are available in its repo. It has one of the biggest repositories of any Linux distro. It's on par with Arch with around 90 thousand packages.

Unless you are doing something custom or niche, your nixos won't have to compile anything.

lemmyvore ,

Are all those packages available in binary format? Not familiar with Nix but that's certainly not the case for Arch. Arch has 85k packages in the AUR as source recipes but not as binaries.

I still think Debian makes a better use case for a server since it provides everything as binaries.

If you're going to use binaries what's the point of using Nix anyway? The declarative aspect is nice in an abstract sort of way but you can achieve a system deploy or restore just as fast by installing a vanilla system and a few config files.

corgi ,

Yes, all packages in nixos are available as binaries to download.

The comparison with Arch was just in terms of number of packages. Not the binary availability.

At the bottom of this page, they say that binary cache is currently at 120TB.
https://nixos.org/community/index.html

If packages being available as binaries is the main criteria, nix has you covered there.

The biggest issue for most people with Nixos is the learning curve just because it's so different.

towerful ,

Yeh, but I already have compose files and ansible things to set up a server.
And I'd have to figure out how health checks and depends-on works for that.

I'm sure it would give me an amazing experience, but I have all the tools and I can run them in isolation (ie I can install docker on any os I can SSH into)

turbo_scanning ,

If you want to containerise your apps, you could try Talos Linux. It is an api driven OS tailored to run Kubernetes.
There is no bulk, only what is needed to run K8s, i.e., even no ssh server.

You control it with talosctl which calls the gRPC api endpoint to read or write all sorts of state including machine configuration.

BentiGorlich ,
@BentiGorlich@gehirneimer.de avatar

always . freaking . debian

BautAufWasEuchAufbaut ,
@BautAufWasEuchAufbaut@lemmy.blahaj.zone avatar

I really don't see any advantages in your post for choices other than NixOS. I'm sure you'll improve quickly by necessity! :D

poVoq ,
@poVoq@slrpnk.net avatar

Fedora Server works well, and the Podman integration works well.

I guess it is the boring option, but probably the best when coming from Ubuntu.

Deebster ,
@Deebster@programming.dev avatar

I went with Fedora on my VPS because I was also planning to use rootless Podman. Quadlets and running everything through systemd with SELinux enabled is working pretty well for me.

danielquinn ,
@danielquinn@lemmy.ca avatar

You might want to consider just Dockerising everything. That way, the underlying OS really doesn't matter to the applications running.

I've got a few Raspberry Pi's running Debian, and on top of that, they're running a kubernetes cluster with K3s. I host a bunch of different services, all in their own containers (effectively their own OS) and I don't have to care. If I want to change the underlying OS, the containers don't know either. It's pretty great.

TCB13 ,
@TCB13@lemmy.world avatar

You next OS will be... Debian. Because you care about your time and you want stuff to be stable.

kylian0087 ,

If you mainly use containers perhaps OpenSUSE Micro OS is of interest to you. Other then that pretty much any distro will do. I use rocky Linux my self for a few different things.

If you want to try out many different distros virtualization is also a option. KVM or something like XCP-NG with XO or proxmox are great options.

mobergmann OP ,
@mobergmann@lemmy.world avatar

What is the difference/benefit to Fedora CoreOS?

refreeze ,
@refreeze@lemmy.world avatar

I have used all three! I started with Server then went to CoreOS running Kubernetes and settled on NixOS which I have been very happy with for about a year now. I run about 25-30 services all using built in modules.

Regarding security, if you are using well crafted modules on NixOS, there should be good systemd hardening in place. That being said there is no reason you can't just use containers on NixOS.

I also find deploying NixOS far superior to butane/ignition used by CoreOS/Fedora. I use nixos-anywhere and can deploy my entire server in a few minutes without manual intervention.

bananahammock ,

I'm a NixOS convert too. I actually still run everything in docker but the idea of not having to remeber or document how I set everything up was too appealing....a year later and my desktop and laptop are now on nix too

mobergmann OP ,
@mobergmann@lemmy.world avatar

I am also thinking about installing nix on my laptop, but I need a proprietary library for work, which is kinda hard to install/ not working on NixOS. But we might be able to just use docker for development. Well, that is currently preventing me from installing nix on my laptop, I am still looking for a way to fix that issue.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • selfhosted@lemmy.world
  • random
  • incremental_games
  • meta
  • All magazines