Linux basics for self-hosters
Twelve short guides that take you from "I can open a terminal" to running a home server you understand.
In short: read the guides in order, or jump to the one you need tonight. Each page answers one question, shows commands that work on current openSUSE, Fedora, Debian and Ubuntu, and ends with the tool on this site that does the typing for you. The examples lean towards openSUSE, because that is what runs here, with the Fedora and Debian/Ubuntu equivalent next to it.
Why run a home server on Linux?
It is free, it runs for years on an old mini PC, and every service you will want (a DNS filter, a VPN, a media library, backups) ships as a Linux container first. It is also the one operating system where "have you tried turning it off and on again" is a last resort instead of a strategy: most problems show up in a log you can read.
You do not need to be a sysadmin. You need about a dozen commands, a feel for where things live, and the habit of reading the error message before searching for it. That is what this series covers.
The series in reading order
| # | Guide | After reading it you can |
|---|---|---|
| 1 | Rolling or fixed release | Pick a distribution by how it updates, not by its wallpaper, and know how long it gets security fixes. |
| 2 | zypper, dnf and apt compared | Install, upgrade, search and clean up packages on openSUSE, Fedora and Debian/Ubuntu without guessing. |
| 3 | Desktop environments compared | Tell KDE Plasma, GNOME, Xfce and friends apart, pick one that suits you, and try another without reinstalling. |
| 4 | The directory layout | Know where configuration, data, logs and programs live, so you know what to edit and what to back up. |
| 5 | File permissions | Read rwxr-xr-x at a glance, set it with chmod and chown, and fix the classic permission mistakes. |
| 6 | Users, groups and sudo | Create users, share files through groups, and set up sudo the way your distribution expects. |
| 7 | find and grep | Find files by name, size and age, search inside them, and delete old files without surprises. |
| 8 | Disk space | See which disk is full, find what filled it, and understand why df, du and btrfs disagree. |
| 9 | Processes and resources | Find what eats CPU or memory, stop a stuck program politely, and keep long jobs out of nohup. |
| 10 | systemctl and journalctl | Start, stop and enable services, then read their logs by unit, boot, time and priority. |
| 11 | Network basics | Find your address and interface, see which ports are open, set a static IP, and check DNS. |
| 12 | Copy, sync and archive | Copy and sync folders without surprises, pack archives with tar, and know what a real backup needs. |
More guide series
- openSUSE home server setup: Set up an openSUSE Leap or Tumbleweed home server: why openSUSE, install, SSH, updates, snapper rollback, firewalld, rootless podman and quadlets.
- Cockpit on openSUSE: Run Cockpit on openSUSE Leap or Tumbleweed: install it, manage rootless podman quadlets and systemd units, and reach it safely over WireGuard.
Where to go after the basics
Once services, logs and permissions feel familiar, the next step is containers run by systemd. Start with the podman quadlet examples, turn an existing docker-compose file into quadlets with the compose to quadlet converter, and move old cron jobs over with the cron to systemd timer converter.