The Fedora project is maintaining different variants of Fedora Linux to fulfil different use cases. The Linux variant provides some features, specialized for servers and headless systems. Let's have a look at Fedora server and see what is different to CentOS Stream, Alma Linux or Fedora Workstation.
If you want to run a server, you most likely want to:
- have little maintenance
- have long support for patches
- get ABI/API stable packages
Opting for Fedora Server has totally different purposes. You will get instead:
- patches on a daily basis
- very current software
- upgrades every 6 months
So, why do you want to use something like this? For me, the answer was quite easy after having a look at the product chain from Fedora, CentOS, RHEL and Alma Linux.
As you can see, Fedora is basically leading the pack. So, you can find new features, bugs and design decisions in Fedora Server, first. Using Fedora Server offers newer packages and the perfect opportunity to run a Server OS on new hardware, use very new software versions and checking out what will be available in CentOS or RHEL in the next couple of years.
I strongly recommend not to run Fedora for mission critical machines, but came up with something like the below for my "pipeline".
- Tinkering/Personal/Development == Fedora Server/CentOS Stream
- Development/Staging/Uncritical == CentOS Stream/Fedora Server
- Somewhat Critical == CentOS Stream/Alma Linux/Rocky Linux
- Mission Critical == RHEL
Release & Support
Fedora Server is an official "Edition" of Fedora and gets a lot of attention from the developers. You will get the same focus and support, you can expect from Fedora Workstation.
This boils down to:
- one new release every 6 months
- patches and updates for 13 months
- regular meetings of the working groups in IRC
- community support via IRC (#fedora-server on irc.libera.chat), mailing list and issue tracker
- developer support for packages via the Red Hat Bugzilla, too
The installation for Fedora Server works exactly the same as for other Fedora variants.
After the first boot, you will be greeted from the Anaconda installer, which works exactly the same way as described for Fedora Workstation, CentOS Stream or Alma Linux. The below screenshots are illustrating the procedure.
After the installation, I recommend logging in and update the system.
# Update system
$ sudo dnf update -y && sudo reboot
In case you need a more advanced guide, please have a look at the documentation.
Looking at the features of Fedora, one may think: "Just Fedora Workstation without GNOME". But this is not true. You will get very recent software packages and pre-installed software that is made for servers.
In addition, you will get specialized images for private and public cloud providers. But, let's have a look at the "standard" Fedora Server beforehand.
For the basic functionality, Fedora comes with the Linux Kernel 5.11.x+ (currently 5.12.15) and systemd 248. You should be aware, that kernel upgrades are a normal thing in Fedora, even during a release. I assume, Kernel 5.13.x may be available at some point in Fedora 34, too.
For basic networking, you will find NetworManager available. It provides some high level configuration options for Network Devices and Connections. It also integrates systemd-resolved and can configure VPN connections for several providers.
For additional security, you can find SELinux pre-installed and enabled. SELinux provides an additional layer to separate processes and file access. Furthermore, you will get firewalld, which adds a high level interface for iptables and nftables. Configuring firewalls is pretty easy this way.
For containers, you will have podman pre-installed. Podman provides a rootless and daemonless alternativ to Docker and works pretty much the same way. You can also find some articles about Podman in the blog. If you prefer Docker, it is available in the repositories and you can get started very easily.
For administration, you can use the good-old-SSH or check out the Cockpit web interface. It is installed and enabled by default and available via https://IP-ADDRESS:9090. Cockpit works in a way, that it strictly interacts with the APIs of some tools. So it doesn't matter, if you set the hostname via console or Cockpit - both will update the same endpoints.
Additionally, you can find much more software in the repositories. I don't want to go into too much details, but here is an idea of the packages.
- QEMU 5.2.0
- libvirt 7.0.0
- Apache httpd 2.4.48
- Nginx 1.20.1
- Docker (moby-engine) 20.10
- Python 3.9.6
- NodeJS 14.17
- Ruby 3.0.1
- Golang 1.16.5
- Rust 1.53.0
And many more.
If this is still not enough, and you need some non-free software like Nvidia or Realtek drivers, you can find them in RPMFusion. The repository became the de-facto standard for 3rd party software on Fedora.
Furthermore, you can find some software in COPR. Be aware, that the repositories are quite similar to Ubuntu PPAs and are not necessarily maintained properly. Nonetheless, you find some really cool software for testing and playing around and software that never made it into other repositories.
Docs & Links
The Fedora project provides many well written documentation about Fedora Server and how you can get started with different setups. Additionally, you can find some very well written articles over at Fedora Magazine and other blogs.
With Fedora Server, you will get a very current server OS, that provides very recent software releases and specialized tools for server workload. You can run basically everything from a Ruby application to containers or virtualization.
For me, it is one of the best Server operating systems for personal use, tinkering and development. Nevertheless, I wouldn't recommend it for critical workloads where your company depends on. The wheel is just spinning too fast and needs more maintenance than Red Hat Enterprise Linux or even CentOS Stream.