Zurück zum Blog

deploy-ai-agent-on-hetzner-vps

Von Hermify Team||9 Min. Lesezeit
deploy-ai-agent-on-hetzner-vps

title: "KI-Agenten auf einem Hetzner-VPS bereitstellen: Die vollständige Anleitung für 2026" description: "Schritt-für-Schritt-Einrichtung eines Hetzner-VPS für einen selbst gehosteten KI-Agenten im Jahr 2026: Tarifwahl, Firewall-Härtung, Docker Compose, Telegram und was um 3 Uhr morgens schiefgeht." date: 2026-06-08 author: "Hermify Team" tags: ["AI Agents", "Hetzner", "Self-hosting", "Docker"] coverImage: "cover.jpg" socialImage: "og.jpg" coverAlt: "Dunkles Server-Rack mit grüner Status-LED und dem Text „Hetzner AI Agent""

Warum bei selbst gehosteten Agenten immer wieder Hetzner auftaucht

Wenn Sie schon einmal Zeit in der Self-Hosting-Ecke von dev.to, Medium oder in den Indie-KI-Telegram-Gruppen verbracht haben, ist Ihnen dasselbe Muster aufgefallen: Sobald jemand fragt, wo man einen dauerhaft laufenden KI-Agenten für weniger als den Preis von zwei Kaffees betreiben kann, lautet die häufigste Antwort Hetzner Cloud. Die Community landet aus zwei Gründen immer wieder dort, die seit Jahren stabil sind: echte CPU-Leistung pro Euro und eine saubere Cloud Firewall, die Sie konfigurieren können, bevor der Server überhaupt hochfährt.

Diese Anleitung richtet sich an Leserinnen und Leser, die sich entschieden haben, einen KI-Agenten selbst zu hosten (Hermes Agent, OpenClaw, ein n8n-Setup mit einem LLM-Knoten oder irgendetwas anderes, das von einem dauerhaft laufenden Server aus eine Modell-API aufruft), und das auf Hetzner tun möchten, ohne die Teile zu überspringen, die um 3 Uhr morgens zählen. Tarifwahl, Härtung, Docker Compose, ein Telegram-Kanaltest und die ehrliche Liste der Dinge, die irgendwann schiefgehen werden.

Falls Sie noch entscheiden, welchen günstigen VPS Sie nutzen sollen, deckt unser Vergleich günstiger VPS das breitere Feld ab. Dieser Beitrag setzt voraus, dass Sie sich für Hetzner entschieden haben.

Schritt 1: Den richtigen Tarif wählen

Hetzner Cloud unterteilt seine Tarife mit gemeinsam genutzten vCPUs (Stand Mitte 2026) in drei Linien:

  • CX (Intel) - ältere gemeinsam genutzte Intel-vCPUs, die in einigen Regionen auslaufen
  • CPX (AMD EPYC) - der aktuelle x86-Standard, schnellster Single-Thread
  • CAX (ARM Ampere) - die günstigste Linie, sehr starke Leistung pro Euro

Für einen API-gesteuerten KI-Agenten (einen, der OpenAI, Anthropic, OpenRouter oder Ihre eigene Ollama-Instanz aufruft und Tool-Aufrufe lokal orchestriert) ist der gewünschte Tarif der kleinste aus einer dieser Linien:

Tarif vCPU RAM NVMe EU-Preis Hinweise
CAX11 (ARM) 2 4 GB 40 GB ~€3,79/Monat Günstigste brauchbare Option
CX22 (Intel) 2 4 GB 40 GB ~€3,79/Monat Wird in einigen Regionen eingestellt
CPX11 (AMD) 2 2 GB 40 GB ~€4,59/Monat Bester Single-Thread auf x86
CPX21 (AMD) 3 4 GB 80 GB ~€7,55/Monat Spielraum für einen zweiten Agenten oder Browser-Tools

Die Preise für die US-Region liegen etwas höher (etwa $4,59-$4,99 für die entsprechende CX22-Ausstattung). Hetzner hat die Preise am 15. Juni 2026 angepasst - neue Bestellungen nutzen den neuen Tarif, bestehende Server behalten den alten Tarif, bis Sie neu skalieren.

Empfehlung: Beginnen Sie mit CAX11 oder CX22. Zwei vCPU und 4 GB RAM reichen für einen einzelnen Agenten, ein Telegram-Gateway, einen kleinen Reverse-Proxy und einen Docker-Daemon, mit Spielraum für die gelegentliche Headless-Browser-Aufgabe. Wenn Sie planen, mehrere Agenten zu betreiben, Seiten mit Playwright zu scrapen oder über Nacht Skills im Stapel laufen zu lassen, wechseln Sie zu CPX21.

Falls Ihre Agenten-Laufzeitumgebung noch kein ARM-Image bereitstellt, bleiben Sie bei CX22 oder CPX11. Die meisten beliebten Laufzeitumgebungen (Hermes Agent, OpenClaw, n8n) stellen heute linux/arm64-Images bereit, sodass die CAX-Linie in der Regel infrage kommt.

Schritt 2: Den Server bereitstellen und vor dem SSH-Zugriff absichern

Das ist der Schritt, der am häufigsten übersprungen wird und sich später rächt. Hetzner gibt Ihnen zwei Firewalls (die Cloud Firewall auf Edge-Ebene und die UFW auf Host-Ebene). Nutzen Sie beide. Die Cloud Firewall ist diejenige, die Sie konfigurieren sollten, bevor der Server hochfährt, damit er niemals auch nur ein einziges Paket auf einem Port annimmt, den Sie nicht öffnen möchten.

Erstellen Sie in der Hetzner-Konsole eine Cloud Firewall mit diesen eingehenden Regeln:

  • TCP 22 nur von Ihrer IP (oder von einem kleinen CIDR, falls Sie einen festen Büro-Bereich haben)
  • TCP 80 von 0.0.0.0/0, ::/0 (nur falls Sie auf dieser Instanz einen Reverse-Proxy betreiben)
  • TCP 443 von 0.0.0.0/0, ::/0 (nur falls Sie HTTPS für Webhooks oder eine Web-UI benötigen)
  • ICMP von 0.0.0.0/0, ::/0 (damit ping für die Überwachung funktioniert)

Ausgehend: Belassen Sie die Standardeinstellung „alles erlauben" - der Agent muss die Modell-API erreichen können.

Erstellen Sie nun den Server, hängen Sie die Firewall an und wählen Sie Ubuntu 24.04 LTS. Fügen Sie im SSH-Schlüssel-Bereich den öffentlichen Schlüssel von Ihrem Laptop hinzu. Erlauben Sie keine Anmeldung per Passwort.

Fotorealistisches dunkles Bedienfeld mit einem leuchtend grünen Netzwerk-Schild-Symbol, das den Schutz durch eine Cloud Firewall darstellt

Sobald der Server läuft, melden Sie sich per SSH als root an und erledigen Sie sofort vier Dinge:

# 1. Patch
apt update && apt upgrade -y && apt install -y ufw fail2ban unattended-upgrades

# 2. Create a non-root user
adduser --disabled-password --gecos "" agent
usermod -aG sudo agent
mkdir -p /home/agent/.ssh && cp ~/.ssh/authorized_keys /home/agent/.ssh/
chown -R agent:agent /home/agent/.ssh && chmod 600 /home/agent/.ssh/authorized_keys

# 3. Lock down SSH
sed -i 's/^#*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart ssh

# 4. Host firewall (UFW), redundant with Cloud Firewall but a useful safety net
ufw default deny incoming && ufw default allow outgoing
ufw allow OpenSSH && ufw allow 80/tcp && ufw allow 443/tcp
ufw --force enable

Aktivieren Sie anschließend unbeaufsichtigte Sicherheitsupdates und fail2ban mit sinnvollen Standardeinstellungen:

dpkg-reconfigure -plow unattended-upgrades   # answer Yes
systemctl enable --now fail2ban

Fail2ban sperrt standardmäßig IPs nach 5 fehlgeschlagenen SSH-Versuchen innerhalb von 10 Minuten. Die Cloud Firewall verwirft die meisten davon bereits am Edge, aber fail2ban fängt alles ab, was durchrutscht (eine Kollegin, ein falsch konfigurierter CI-Runner, Sie selbst).

Melden Sie sich von root ab, melden Sie sich wieder als agent an und machen Sie von dort aus weiter.

Schritt 3: Docker installieren

Docker ist im Jahr 2026 die sauberste Methode, einen KI-Agenten auf einem VPS zu betreiben. Der Agent bleibt isoliert, Abhängigkeiten verschmutzen den Host nicht, und Updates sind nur ein pull && up entfernt.

# As the agent user, with sudo
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker agent
newgrp docker
docker run --rm hello-world

Wenn hello-world etwas ausgibt, ist Docker einsatzbereit.

Schritt 4: Den Agenten mit Docker Compose bereitstellen

Erstellen Sie ~/agent/docker-compose.yml auf dem Server. Das folgende Beispiel ist für Hermes Agent, aber die Struktur ist identisch für OpenClaw, Open WebUI + einen LLM-Anbieter oder jede andere containerisierte Agenten-Laufzeitumgebung.

services:
  agent:
    image: ghcr.io/your-runtime/agent:latest
    container_name: agent
    restart: unless-stopped
    env_file: .env
    volumes:
      - ./data:/data
      - ./skills:/skills
      - ./memory:/memory
    ports:
      - "127.0.0.1:8080:8080"   # web UI bound to localhost only

Erstellen Sie dann ~/agent/.env:

# Model provider (BYOK - bring your own key)
OPENAI_API_KEY=sk-...
# Or any of:
# ANTHROPIC_API_KEY=...
# OPENROUTER_API_KEY=...

# Messaging gateway
TELEGRAM_BOT_TOKEN=...
TELEGRAM_ALLOWED_USERS=12345678   # your Telegram user ID

# Persistence
DATA_DIR=/data
MEMORY_DIR=/memory

chmod 600 .env, damit andere Nutzer auf der Instanz Ihre Schlüssel nicht lesen können, und starten Sie es anschließend:

docker compose up -d
docker compose logs -f agent

Die Richtlinie restart: unless-stopped hält den Agenten über Neustarts hinweg am Leben. Wenn Sie eine native Installation anstelle von Docker bevorzugen, ist das Äquivalent eine systemd-Unit mit Restart=always und WantedBy=multi-user.target.

Schritt 5: Telegram einrichten und testen

Wenn Sie sich für Telegram als Nachrichtenoberfläche entschieden haben (das tun die meisten Self-Hoster, weil die Bot-API kostenlos und sofort verfügbar ist), ist die Testschleife kurz:

  1. Schreiben Sie mit @BotFather auf Telegram, führen Sie /newbot aus und speichern Sie das Token in .env.
  2. Schreiben Sie mit @userinfobot, um Ihre numerische Telegram-Benutzer-ID zu erhalten, und tragen Sie sie in TELEGRAM_ALLOWED_USERS ein.
  3. docker compose restart agent.
  4. Öffnen Sie Ihren neuen Bot in Telegram und senden Sie „hello".

Sie sollten innerhalb weniger Sekunden eine Antwort sehen. Falls nicht, weist docker compose logs -f agent in der Regel direkt auf das Problem hin (fehlendes Token, falsche Allowed-User-ID, Modell-Anbieter liefert 401 zurück).

Eine viel ausführlichere Anleitung zum Telegram-Teil (Gruppen, Themen, Sprachmodus, Fehlerbehebung) finden Sie unter So bauen Sie einen KI-Agenten auf Telegram.

Fotorealistische Nahaufnahme eines Smartphones, das eine Chat-Blase in einem dunklen Design mit grünem Akzent zeigt

Schritt 6: Backups und Überwachung (der Teil, den alle überspringen)

Zwei günstige Dinge, die sich beim ersten Ausfall bezahlt machen:

  • Hetzner-Snapshots: Aktivieren Sie in der Konsole einen täglichen Snapshot des Servers. Etwa €0,012/GB/Monat, also rund €0,50/Monat für eine 40-GB-Festplatte. Markieren Sie einen mit „before-update", bevor Sie ein docker compose pull ausführen.
  • Ein Uptime-Ping: kostenlos bei BetterStack oder UptimeRobot. Lassen Sie ihn alle 5 Minuten https://your-domain/health aufrufen (oder einfach eine TCP-Prüfung durchführen). Wenn das Telegram-Gateway das erste Mal um 3 Uhr morgens die Verbindung verliert, erfahren Sie es vor dem Mittagessen statt erst beim Mittagessen.

Für den eigenen Zustand des Agenten (Memory-Dateien, Skills, Konversationsverlauf) richten Sie einen einzeiligen Cron-Job ein, der das eingebundene Volume in /var/backups/agent-$(date +%F).tar.gz packt und ältere Kopien rotiert. Kopieren Sie das wöchentlich per Rsync von der Instanz weg auf einen zweiten günstigen VPS, einen S3-kompatiblen Bucket oder Ihren Laptop.

Schritt 7: Updates

Einmal pro Woche, sobald der Snapshot bereits erstellt ist:

cd ~/agent
docker compose pull
docker compose up -d
docker image prune -f

Das Ganze dauert in der Regel weniger als eine Minute. Falls das neue Image etwas kaputtmacht, stellen Sie den Snapshot über die Hetzner-Konsole wieder her - der einzige Zustand, den Sie verlieren, sind die Konversationen zwischen dem Snapshot und jetzt, die im Memory-Volume des Agenten liegen.

Was irgendwann schiefgeht

Eine kurze, ehrliche Liste:

  • Telegram-Long-Polling bricht ab während längerer Netzwerkaussetzer. Die meisten Laufzeitumgebungen verbinden sich automatisch neu, aber falls Ihre das nicht tut, fängt der Uptime-Ping es ab.
  • docker compose pull liefert eine Konfigurationsänderung, die etwas kaputtmacht. Pinnen Sie das Image-Tag in der Produktion auf eine bestimmte Version statt auf :latest.
  • Der Modell-Anbieter drosselt Sie per Rate-Limit, und der Agent reagiert ohne offensichtlichen Fehler nicht mehr. Protokollieren Sie immer den HTTP-Status des Anbieters und bevorzugen Sie Anbieter mit Nutzungs-Dashboards.
  • Eine Festplatte läuft voll, weil ein Skill ohne Rotation nach /tmp schreibt. du -sh /* und docker system df sollten in Ihrem Debugging-Muskelgedächtnis sitzen.
  • Sie vergessen die Firewall-Regel, wenn Sie einen zweiten Dienst hinzufügen. Beide Firewalls (Cloud + UFW) brauchen den neuen Port, sonst verbringen Sie 20 Minuten damit, „connection refused" von der richtigen Adresse zu debuggen.

Keines dieser Probleme ist Hetzner-spezifisch. Es ist die Steuer dafür, etwas selbst zu betreiben.

Wenn die VPS-Rechnung nicht mehr aufgeht

Falls Sie das hier lesen und die obigen Schritte interessant klingen - großartig, genau für diesen Workflow ist Hetzner gut. Günstig, schnell, transparent.

Falls sie sich nach einer Steuer auf ein Wochenende anhören, verschiebt sich die Rechnung. Verwaltetes Hosting tauscht €4/Monat und einen Sonntagnachmittag gegen ein Setup, das bereits das Telegram-Gateway, BYOK zu Ihrem Anbieter, persistente Memory-Volumes, Snapshots und „es bleibt einfach oben" enthält. Unser Leitfaden Hosting vs. Self-Hosting geht die vollständige Rechnung durch, einschließlich dessen, was Ihre Zeit wert ist.

Legen Sie mit Hermify los, wenn Sie den verwalteten Weg möchten - ein Agent auf Produktionsinfrastruktur in unter 30 Minuten, keine Cloud Firewall zu konfigurieren und kein fail2ban zu optimieren. Wenn Sie es lieber selbst auf Hetzner machen möchten, sollte dieser Leitfaden Sie ans Ziel bringen.

Quellen

Betreiben Sie Ihren eigenen Hermes Agent

Bringen Sie Ihren API-Schlüssel mit, verbinden Sie Telegram und erhalten Sie in 60 Sekunden einen selbstlernenden KI-Agenten.

Loslegen