
Securing SSH with Two-Factor Authentication (TOTP)
Protect SSH logins with a key plus a one-time code: set up libpam-google-authenticator, configure PAM and sshd correctly …
Every Serverküche self-hosting tutorial – by category and difficulty, step by step and tested on real netcup servers.
Here you’ll find every Serverküche recipe for self-hosting – from the first steps on a fresh server to fully served applications. Each guide is hands-on and tested on a real netcup VPS, but runs just as well on any comparable root or virtual server.
One thread runs through the whole catalogue: set up a server and harden it, put a reverse proxy with automatic HTTPS in front of it, arrange encrypted off-site backups – and build applications like Nextcloud, Vaultwarden and friends on top. Use the categories and tags below to jump straight to the recipe you need.

Protect SSH logins with a key plus a one-time code: set up libpam-google-authenticator, configure PAM and sshd correctly …

One container or eighteen? Both mail servers really set up and compared: effort, RAM, attack surface – and what Mailcow …

Attach services to Authentik: forward auth with Traefik for apps without a login, and OpenID Connect for everything with …

Set up Authentik 2026.8 with Docker and Traefik: your own identity provider with Postgres instead of Redis – initial …

Using Traefik v3 middlewares properly: set security headers, throttle requests, protect services with BasicAuth and an …

Set up Dockge 1.5 behind Traefik: edit and deploy Compose stacks in the browser and follow the logs live – without …

Set up Audiobookshelf 2.36 with Docker and Traefik: an audiobook library with chapters, podcast subscriptions, …

Set up WordPress with Docker and MariaDB behind Traefik – with HTTPS, an isolated database and an honest update …

All your bookmarks in one place, across devices and without browser lock-in: linkding as a lean bookmark manager behind …

Stream your music collection from anywhere – no subscription, no tracking: Navidrome behind Traefik, with app support …

Notices when a backup does NOT run: Healthchecks monitors cron jobs via a dead man's switch and alerts on failure – …

Merge, compress, convert PDFs and make them searchable with OCR – locally instead of on online services: Stirling-PDF …

Sync folders directly between your devices, encrypted and without a third-party cloud: Syncthing as peer-to-peer sync …

All your news sources in one place, no algorithm and no tracking: FreshRSS as a self-hosted RSS reader behind Traefik – …

Start services, read logs, schedule tasks: this foundational guide explains systemd with real commands – including your …

A tidy start dashboard for your server: Homepage links every service, shows system load and the live Docker container …

Build a static website with Hugo and serve it from a Docker container behind Traefik – fast, secure, no database. …

Why does every app recipe declare a proxy network? This guide explains Docker networks, internal DNS and container …

Who is allowed to do what on your server? This foundational guide explains users, groups and file permissions with real …

Immich part 2: make the mobile backup reliable, switch the AI search to your language, add existing photos as an …

Certificate, chain of trust, Let's Encrypt, handshake: this foundational guide explains HTTPS with real commands – and …

Set up AdGuard Home with Docker: your own DNS server that blocks ads, trackers and malicious sites for all devices – …

Set up and register a Forgejo Actions runner with Docker-in-Docker: your own CI/CD pipelines on the self-hosted Git …

So your self-hosted mails land in the inbox instead of spam: reverse DNS, SPF, DKIM and DMARC explained, set up and …

Set up Stalwart Mail Server with Docker: SMTP, IMAP, JMAP and spam filter in a single, lean container – the modern …

Set up Mailcow (dockerized) on your own server: Postfix, Dovecot, Rspamd and SOGo webmail under your domain – a complete …

Self-host ntfy with Docker & Traefik: push messages to your phone via a simple curl – ideal for backup reports, …

Named volume or bind mount? This foundational guide explains the difference, shows both with real examples, and when to …

Set up Matomo 5.13 with Docker & Traefik: privacy-friendly web analytics with IP anonymization, entirely without Google …

Set up Forgejo with Docker & Traefik: your own Git server with HTTPS, repos via web UI, cloning over HTTPS and SSH – the …

Set up HitKeep with Docker and Traefik: cookieless, GDPR-friendly website statistics on your own server – with tracking …

A lean WireGuard VPN natively on the netcup server: keys, server and client config, firewall, phone QR – plus the Docker …

Measured on a netcup VPS 1000 G12: 1,390 events/s per core, 101,000 IOPS random read, ~33 GB/s RAM – with every sysbench …

Update discipline for your Docker stack: pin versions, get notified about updates with Diun, apply them safely, clean up …

Set up CrowdSec with the Traefik bouncer: detect attacks from the access logs, block attackers with a 403 and benefit …

The toolbox for the server terminal: from htop, btop and ncdu for debugging to tmux, rsync and dig for daily work – with …

A complete monitoring stack of Prometheus, node-exporter, cAdvisor and Grafana behind Traefik – with live metrics for …

Set up Jellyfin with Docker behind Traefik: stream your movies, series and music – with HTTPS and the library on …

Set up Immich with Docker behind Traefik: the self-hosted alternative to Google Photos – with automatic phone backup, …

Set up Paperless-ngx with Docker behind Traefik: archive documents searchably via OCR – with full-text search, tags and …

Get your Nextcloud admin overview green: set up HSTS headers, email sending, enforced two-factor auth and brute-force …

Set up Uptime Kuma behind Traefik and monitor your services: monitors, notifications and a status page – the first real …

Set up Nextcloud with Docker behind Traefik: your own cloud for files, calendar and contacts – with MariaDB, Redis and …

Self-host Vaultwarden: a lean, Bitwarden-compatible password manager behind Traefik with HTTPS, an admin panel and an …

Off-site backups with Restic: set up encrypted, restore snapshots, prune with retention and automate via a systemd …

Fail2ban watches your logs and bans IPs after too many failed attempts – with a safe whitelist for your own address so …

Traefik as a reverse proxy in front of your containers, with automatic Let's Encrypt certificates: every app gets a …

Debian installs security updates automatically: set up unattended-upgrades, control the reboot, and verify it really …

A and AAAA records, TTL and propagation explained clearly: how your own domain points to your server – the prerequisite …

Set up the netcup firewall as network protection in front of the server: composable policy templates in the SCP – with …

What you actually need in the netcup Server Control Panel: create and restore snapshots, reach the VNC console when SSH …

Set up a host firewall in minutes with UFW: block everything except SSH, HTTP and HTTPS on your server – without ever …

compose.yaml explained: services, volumes, networks and variables – the Docker vocabulary every app recipe in the …

Install Docker Engine and Docker Compose cleanly from the official repository – the foundation for most self-hosting …

Key-based login instead of passwords and no root login: the most important moves to harden the front door to your …

From a freshly ordered netcup server to a working system in 30 minutes: SSH login, updates, a sudo user, hostname and …