Dein eigener Server — von null online
Von „ich habe keinen Server" bis zum ersten eigenen Dienst live unter Domain — sicher. Roter Faden: erst eine Website online bringen, dann n8n als echten Dienst. In 10 Stufen, ab null.
Worum geht's?
Ein eigener Server klingt nach „nur für Profis" — ist es aber nicht. Für ein paar Euro im Monat mietest du einen VPS (virtuellen Server), den du komplett selbst kontrollierst: deine Daten, dein Standort, deine Regeln.
Du lernst hier den kompletten Weg von null: Server mieten → per SSH einloggen & absichern → Domain verbinden → Reverse Proxy mit HTTPS → einen echten Dienst betreiben → ihn mit Updates, Backups & Monitoring am Laufen halten. Docker (aus dem ersten Workshop) nutzen wir nur kurz als Werkzeug — im Fokus steht der Server.
Dieses Portal ist beides: Live-Präsentation für den Workshop und Selbstlern-Kurs zum Durchklicken. Dein Fortschritt wird lokal gespeichert.
? Für wen ist ein eigener Server wichtig?
Überall, wo man Dienste datensouverän selbst betreiben will — raus aus der Abo- und US-Cloud-Abhängigkeit.
🗺️ Von null bis online — die Reise
Zwei Phasen: erst der schnelle, sichtbare Win (eine Website live), dann der echte Dienst.
Phase 1 (Stufen 1–7): Server steht, erste Website sicher live unter deiner Domain. Phase 2 (8–10): echter Dienst (n8n) + sauberer Betrieb.
🧵 Roter Faden: erst Website, dann n8n
🪜 Die 10 Stufen
Was ist ein VPS — und warum ein eigener Server?
Ein eigener virtueller Server für ein paar Euro im Monat — und wann sich das gegenüber Shared Hosting oder großer Cloud lohnt.
1 Was ist ein VPS?
VPS = Virtual Private Server: ein eigener, virtueller Server in einem Rechenzentrum, den du komplett kontrollierst — rund um die Uhr online, mit eigener IP-Adresse und vollem Root-Zugriff.
2 VPS vs. Shared Hosting vs. große Cloud
Drei Wege, etwas online zu betreiben — der VPS ist der Sweet Spot aus Kontrolle und Einfachheit.
3 Was du brauchst
✓ Geschafft, wenn du …
VPS mieten & einrichten
In wenigen Minuten zum eigenen Ubuntu-Server — hier am Beispiel Hostinger, übertragbar auf Hetzner & Co.
1 Provider wählen & VPS bestellen
Es gibt viele gute Anbieter. Wir zeigen den Ablauf an Hostinger — bei Hetzner, Netcup & Co. ist er fast identisch.
- Plan: ein kleiner VPS reicht zum Start — 1–2 vCPU, ~4 GB RAM, etwas SSD.
- Betriebssystem: Ubuntu LTS (Long-Term-Support) — stabil, riesige Community, das nutzen wir hier.
- Standort: ein EU-Rechenzentrum (z. B. Deutschland) — gut für Datenschutz & Latenz.
- Nach dem Bestellen bekommst du die IP-Adresse + erste Zugangsdaten (root-Passwort oder Key).
Hostinger VPS ansehen ↗ (Affiliate-Link — unterstützt FL Pro, kostet dich nichts extra)

Versionsstand: Hostinger-Oberfläche · Stand Juni 2026 (UIs ändern sich).
2 Was du jetzt in der Hand hast
Nach dem Bestellen hast du drei Dinge: eine IP-Adresse (z. B. 203.0.113.10), einen Benutzer (meist root) und ein Passwort oder einen Key. Damit loggst du dich gleich per SSH ein (Stufe 3).
✓ Geschafft, wenn du …
Erster Zugang per SSH & SSH-Keys
Sicher auf den Server einloggen — und Passwörter durch Schlüssel ersetzen.
1 Was ist SSH — und der erste Login
~/.ssh/config, Tunnel & Härtung Schritt für Schritt.SSH (Secure Shell) ist eine verschlüsselte Verbindung, über die du den Server aus der Ferne im Terminal bedienst — als säßest du davor.
Der Login-Befehl ist überall gleich — ssh ist in Windows 10/11, macOS und Linux eingebaut:
ssh ist seit Windows 10 dabei.ssh ist vorinstalliert.ssh ist vorinstalliert.ssh root@…-Login inkl. Fingerprint-Abfrage. IP blurren.2 SSH-Keys statt Passwort
Passwörter kann man raten. Ein SSH-Schlüsselpaar ist deutlich sicherer — und bequemer (kein Tippen mehr).
authorized_keys)Beim Login beweist dein privater Key, dass der öffentliche auf dem Server zu dir gehört — ohne dass je ein Passwort übers Netz geht.
ssh-copy-id fehlt manchmal — dann den Inhalt von ~/.ssh/id_ed25519.pub manuell in die Datei ~/.ssh/authorized_keys auf dem Server kopieren.ssh-keygen erzeugen, öffentlichen Key per ssh-copy-id auf den Server bringen, danach loggt ssh root@… ohne Passwort ein.3 Bequemer Login mit ~/.ssh/config
Statt jedes Mal IP und Benutzer zu tippen, gib deinem Server einen Namen:
Host meinserver
HostName 203.0.113.10
User root
IdentityFile ~/.ssh/id_ed25519
ssh meinserver. Das Abschalten des Passwort-Logins (nur noch Key) machen wir in Stufe 4 — erst wenn der Key-Login sicher klappt, sonst sperrst du dich aus.✓ Geschafft, wenn du …
Server absichern
Die nicht verhandelbaren Basics, bevor irgendwas online geht: Updates, ein sudo-User statt root, Firewall.
1 System aktualisieren & eigener Benutzer
Zuerst alle Pakete aktuell — dann weg vom root-Dauerbetrieb: ein eigener Benutzer mit sudo-Rechten.
max ein (ssh-copy-id max@…) und logge dich künftig als max ein — sudo nur, wenn nötig, nicht mehr dauerhaft als root.2 root- & Passwort-Login abschalten
Sobald der Key-Login als max klappt: Passwort- und root-Login aus.
PermitRootLogin no PasswordAuthentication no
sudo systemctl restart ssh. Ab jetzt kommt nur noch rein, wer den passenden Key hat.3 Firewall, fail2ban & Auto-Updates
Nur die Ports offen, die du brauchst — der Rest dicht.
ufw lässt nur SSH (22), HTTP (80) und HTTPS (443) durch. Dienste wie n8n oder Datenbanken bleiben intern — erreichbar nur über den Reverse Proxy (Stufe 7).
sudo ufw status mit den erlaubten Ports.✓ Geschafft, wenn du …
Phase-1-Win: erste Website live
Dein erstes Erfolgserlebnis — eine statische Seite über die Server-IP, ausgeliefert von einem nginx-Container.
1 Eine Seite ausliefern
Wir nehmen einen winzigen nginx-Container (Docker kennst du aus Workshop 1) und legen ihm deine HTML-Dateien hinein.
http://203.0.113.10 (deine Server-IP) öffnen — deine Seite ist live! 🎉2 Was hier passiert
-v ~/site:/usr/share/nginx/html:ro— dein Ordner landet (nur lesbar) im Container, wo nginx ihn ausliefert.-p 80:80— Port 80 (HTTP) des Servers zeigt auf den Container. Darum erreichst du die Seite direkt über die IP.--restart unless-stopped— der Container kommt nach einem Reboot von selbst wieder.
http. Als Nächstes geben wir der Seite eine richtige Domain (Stufe 6) und HTTPS (Stufe 7).✓ Geschafft, wenn du …
Domain verbinden (DNS)
Aus der nackten IP wird eine echte Adresse — wie DNS funktioniert und wie du den A-Record setzt.
1 Wie DNS funktioniert
DNS ist das Telefonbuch des Internets: es übersetzt deine Domain in die IP-Adresse deines Servers.
Ein A-Record verknüpft die Domain mit der IPv4-Adresse deines Servers (AAAA = IPv6).
2 Den A-Record setzen
Im DNS-Bereich deines Domain-Anbieters legst du Einträge an, die auf deine Server-IP zeigen:
Typ Name Wert A @ 203.0.113.10 # die Hauptdomain A www 203.0.113.10 # www-Variante A n8n 203.0.113.10 # Subdomain für später (Stufe 8)
@ steht für die Domain selbst. Subdomains wie n8n legst du gleich mit an — die brauchen wir für den echten Dienst.ping deinedomain.de prüfst du, ob schon deine IP zurückkommt.✓ Geschafft, wenn du …
Reverse Proxy & HTTPS
Eine zentrale Tür für alle Dienste — mit automatischem HTTPS. Wir nehmen den Nginx Proxy Manager.
1 Warum ein Reverse Proxy?
Niemand soll Ports tippen. Ein Reverse Proxy nimmt alle Anfragen auf 80/443 entgegen, kümmert sich um HTTPS und verteilt nach Domain an den richtigen Dienst.
n8n.deinedomain.de
n8n :5678
Eine Tür (Port 443) für alles. Pro Domain/Subdomain ein „Proxy-Host" → der passende Container. Das Zertifikat holt der Proxy automatisch.
2 Nginx Proxy Manager starten
NPM ist ein Reverse Proxy mit einfacher Web-Oberfläche — ideal zum Einstieg.
services: npm: image: jc21/nginx-proxy-manager:latest restart: unless-stopped ports: [ "80:80", "443:443", "81:81" ] # 81 = Admin-Web-UI volumes: [ "./data:/data", "./letsencrypt:/etc/letsencrypt" ]
docker compose up -d erreichst du die Admin-Oberfläche unter http://203.0.113.10:81 — das Standard-Login beim ersten Start sofort ändern!3 Proxy-Host + HTTPS anlegen
In der NPM-Oberfläche legst du pro Domain einen „Proxy Host" an — und holst das Zertifikat mit zwei Klicks.
- Domain Names:
deinedomain.de - Forward Hostname/Port: der Website-Container (z. B.
web:80) — im selben Docker-Netz wie NPM - SSL-Tab: „Request a new SSL Certificate" + „Force SSL" → Let's-Encrypt-Zertifikat, automatisch erneuert

web:80, dann im SSL-Tab ein Let's-Encrypt-Zertifikat anfordern und „Force SSL" aktivieren — die Seite ist danach unter https:// erreichbar.-p 80:80 mehr) — der Proxy hört auf 80/443 und leitet intern an den Container weiter.✓ Geschafft, wenn du …
Der echte Dienst: n8n
Phase 2: ein dauerhafter, nützlicher Dienst neben der Website — n8n als zweite Subdomain hinter denselben Proxy.
1 n8n als Container starten
Jetzt der echte Dienst. n8n startest du wie in Workshop 1 — mit einem Volume für die Workflows und im selben Docker-Netz wie der Proxy.
services: n8n: image: docker.n8n.io/n8nio/n8n restart: unless-stopped environment: N8N_HOST: n8n.deinedomain.de WEBHOOK_URL: https://n8n.deinedomain.de/ volumes: [ "n8n_data:/home/node/.n8n" ] networks: [ web ] volumes: { n8n_data: {} } networks: { web: { external: true } }
n8n_data hält deine Workflows. networks: web ist dasselbe Netz, in dem auch der Nginx Proxy Manager läuft (einmalig mit docker network create web anlegen) — so erreicht der Proxy n8n über den Namen n8n.-p nach außen! n8n bekommt keinen offenen Port — erreichbar wird es nur über den Proxy (Stufe 7). Genau so soll es sein: die Firewall bleibt zu.2 Hinter den Proxy hängen
Wie in Stufe 7 — nur eine zweite Subdomain. In NPM einen neuen Proxy-Host anlegen:
- Domain Names:
n8n.deinedomain.de(der A-Record dafür steht schon aus Stufe 6) - Forward Hostname/Port:
n8n:5678 - SSL: Let's-Encrypt-Zertifikat anfordern + „Force SSL"
https://n8n.deinedomain.de. Genau so betreibt FL Pro seine Dienste.✓ Geschafft, wenn du …
Updates & Backups
Den Dienst aktuell und sicher zurückrollbar halten — mit Watchtower für n8n und automatischen Backups als Sicherheitsnetz.
1 Updates: System + Container
Zwei Ebenen aktuell halten: das Betriebssystem und deine Container.
unattended-upgrades aus Stufe 4 automatisch erledigen.)2 Watchtower: n8n automatisch aktuell
n8n bringt fast im Wochentakt Updates — die von Hand zu ziehen, nervt. Watchtower übernimmt das automatisch.
services: watchtower: image: containrrr/watchtower restart: unless-stopped volumes: [ "/var/run/docker.sock:/var/run/docker.sock" ] command: --cleanup --schedule "0 0 4 * * *" # täglich 04:00 Uhr
--cleanup räumt alte Images weg.:next), Changelog im Blick (Major-Versionen können DB-Migrationen bringen). Watchtower braucht den Docker-Socket = privilegiert. Darum immer zusammen mit automatischem Backup (§3) — dann ist ein misslungenes Update kein Drama.3 Backups als Sicherheitsnetz
Gerade mit Auto-Updates gilt: ein nächtliches Backup, das du zurückspielen kannst.
.tgz. Per Cron regelmäßig laufen lassen und die Sicherungen auch weg vom Server kopieren. Restore = Volume aus dem tar wiederherstellen — so ist ein kaputtes Update jederzeit umkehrbar.✓ Geschafft, wenn du …
Monitoring & gesund halten
Läuft alles? Ein Blick-Dashboard für die Verfügbarkeit plus die wichtigsten Server-Checks im Terminal.
1 Uptime-Kuma: dein Status-Dashboard
Uptime-Kuma prüft regelmäßig, ob deine Dienste erreichbar sind — mit hübschem Dashboard, Statusseite und Alerts (E-Mail/Telegram).
deinedomain.de und n8n.deinedomain.de an. Fällt etwas aus, bekommst du sofort eine Nachricht.2 Server-Gesundheit per CLI
Für den schnellen Blick brauchst du kein extra Tool — vier Befehle reichen.
3 Sicherheits-Recap & wie es weitergeht
Die fünf Dinge, die deinen Server sicher halten — als Merkliste fürs Gewissen:
✓ Geschafft, wenn du …
Server-Spickzettel
Die wichtigsten Befehle zum Mitnehmen. (Zählt nicht für den Fortschritt.)
▶ SSH & Dateien
ssh user@serverssh-keygen -t ed25519ssh-copy-id user@serverscp datei user@server:~~/.ssh/configssh name.nano datei🧩 Server & Docker
sudo apt update && upgradesudo ufw statussystemctl status <dienst>docker compose up -ddocker compose pulldf -h · htop★ Gute Gewohnheiten
- SSH-Keys statt Passwort, kein root-Login, Firewall an.
- Dienste nur hinter dem Reverse Proxy — kein offener Port nach außen.
- Automatische Backups, bevor du Auto-Updates (Watchtower) anschaltest.
- Secrets in eine
.env, nie im Klartext in geteilte Dateien.
Quiz
10 Fragen quer durch die Stufen. Ab 8 richtigen Antworten schaltest du dein Zertifikat frei.
Dein Zertifikat
Glückwunsch! Trage deinen Namen ein und drucke das Zertifikat (oder speichere als PDF).