openSUSE home server setup

Ten guides from choosing openSUSE to a server that patches itself, with rootless containers run by systemd.

In short: start with why openSUSE if you are still choosing, or jump in at the install. Every command is written for current openSUSE Leap 16 and Tumbleweed, says when it needs root, and notes where the two differ. New to the shell? The Linux basics series covers the ground work.

The series in reading order

What each guide covers and what you can do after reading it
#GuideAfter reading it you can
1 Why openSUSE Weigh openSUSE's rollbacks, tooling and podman support against its smaller community, and pick Leap or Tumbleweed.
2 Install and first steps Install openSUSE with the choices that matter later, then update, name and check the new server.
3 Users and SSH hardening Make sudo use your own password, log in with keys only, and lock down sshd without locking yourself out.
4 Updates with zypper Use the right zypper command for Leap or Tumbleweed, finish the update properly, and keep extra repos in check.
5 Snapper rollback Find the snapshot from before the problem, restore one file or the whole system, and keep snapshots from filling the disk.
6 firewalld basics Read the current rules, open a service or port the permanent way, and limit it to the networks that need it.
7 Rootless podman Give containers their own unprivileged user, make limits work with cgroup delegation, and avoid the session traps.
8 Quadlet basics Write a .container file, let systemd generate the service, start it at boot, and debug it when it does not appear.
9 AppArmor and SELinux gotchas Find out which security module you run, fix the usual container volume denials, and read the log instead of switching it off.
10 Automatic updates Let the server patch itself on a schedule, reboot when needed, and tell you when something failed.

After this series

Want a web interface on top? The Cockpit series adds one, reachable only through WireGuard. For real services, start from the podman quadlet examples or convert a compose file with the compose to quadlet converter.