Hermes Agent (NousResearch/hermes-agent) ist für einen VPS um etwa 5 $/Monat gedacht, nicht nur für einen Laptop. Das offizielle Docker-Image nousresearch/hermes-agent speichert den gesamten Zustand unter ~/.hermes:/opt/data auf dem Host, und der gateway-Prozess verbindet Telegram, Discord, Slack und weitere Plattformen in einem Hintergrunddienst. Dieser Leitfaden beschreibt Docker auf einem günstigen VPS, Telegram-Bot-Erstellung, Allowlist-Sicherheit und dauerhaftes docker compose. Offizielle Referenzen: Docker-Benutzerhandbuch, Messaging-Gateway, Team-Telegram-Assistenten-Leitfaden.
Wenn Sie Agent-Harnesses auf Apple-Hardware vergleichen, lesen Sie Hermes Agent vs OpenClaw auf macOS und Mac mini M4. Nach langen Telegram-Sitzungen mit aufgeblähtem Kontext optimieren Sie Speicher und Tokens mit Hermes trajectory_compressor auf Mac mini M4. Diese Artikel behandeln lokales Staging; diese Seite fokussiert Linux-VPS plus Docker für Telegram 24/7.
Offenlegung: MacHTML bietet optional Cloud-Mac-mini-Miete zum Staging von Konfigurationen; dieser Leitfaden fokussiert Linux-VPS und Docker und erfordert keinen Mac.
Warum Docker auf einem günstigen VPS
Hermes braucht einen Prozess, der online bleibt, während Sie schlafen. Ein Laptop klappt zu; ein günstiger VPS (oft 1–2 vCPU, 2–4 GB RAM, ca. 4–6 $/Monat) kann gateway run rund um die Uhr ausführen.
Docker bringt drei praktische Vorteile für wöchentliche Deployments. Erstens reproduzierbare Installationen: nousresearch/hermes-agent:latest pullen statt Python 3.11, Node und Distro-Pakete auf jedem neuen VPS zu debuggen. Zweitens isolierte Upgrades: Image tauschen, ~/.hermes auf dem Host behalten. Drittens optional Befehls-Sandbox: TERMINAL_BACKEND=docker für Shell-Tools in einem separaten Container.
Telegram ist der schnellste Kanal für End-to-End-Validierung. Bot mit @BotFather erstellen, Token in ~/.hermes/.env, numerische User-ID in TELEGRAM_ALLOWED_USERS. Standardrichtlinie lehnt unbekannte Nutzer ab; GATEWAY_ALLOW_ALL_USERS=true nicht bei Bots mit Terminalzugriff.
Ein VPS liefert stabile öffentliche IP und vorhersehbare Verfügbarkeit für Cron. Hermes triggert Cron alle 60 Sekunden im Gateway; nach Reboot bringt restart: unless-stopped in Compose den Dienst zurück.
Gegenüber NAS oder Raspberry Pi hat eine kleine Cloud-VM meist bessere Ausgehend-Verbindung zu Telegram und LLM-Anbietern plus Snapshots. Snapshot von ~/.hermes vor großen Upgrades.
Aus der DACH-Region: Region mit stabilem Egress zu Telegram und LLM wählen oder Proxy planen. Offizielles Image von Docker Hub; bei Spiegeln Digest prüfen.
Docker Compose erleichtert Übergaben: eine Compose-Datei, ein Datenverzeichnis, dokumentierter Pairing-Workflow für Staging vor Produktionsänderungen.
Nur Telegram ohne Dashboard: Profil Minimum reicht oft; mit terminal.backend: docker oder mehreren Admins auf Recommended wechseln und RAM zwischen Sandbox und Gateway überwachen.
Für Teams gehören Bot-Token-Rotation, TELEGRAM_ALLOWED_USERS und Compose-Limits in ein internes Runbook — so reproduzieren Kollegen Staging und Produktion, ohne Geheimnisse in Chat-Tickets zu posten.
Vor Upgrades ~/.hermes sichern und Image-Digest notieren — erleichtert Rollback und Audit. Prüfen Sie außerdem, dass nur ein Gateway-Container dieselbe Datenpartition mountet.
Architektur: Gateway im Container
Internet → Telegram API → VPS:hermes container (gateway run)
↳ /opt/data (bind-mount ~/.hermes)
├─ .env (TELEGRAM_BOT_TOKEN, API keys)
├─ config.yaml (terminal, models, cron)
├─ sessions/ (per-chat history)
└─ memories/ (curated long-term memory)
Das Gateway ist ein langlaufender Prozess, der Messaging-Plattformen multiplext. Jeder Telegram-Chat über /opt/data/sessions/, Arbeit an die Agent-Schleife, Langzeitgedächtnis unter /opt/data/memories/. Alles auf dem Host durch ~/.hermes:/opt/data.
Niemals dasselbe /opt/data in zwei Gateway-Container mounten. Session-Dateien sind nicht concurrent-safe; doppelte Gateways verursachen Korruption und Duplikate. Produktion: ein hermes-Service, command: gateway run.
Port 8642 optional für OpenAI-kompatible API und Health. Bei nur Telegram nicht veröffentlichen. Bei Aktivierung: API_SERVER_ENABLED=true, vorsichtiges Binden, starker API_SERVER_KEY und Firewall.
In Produktion tägliche Backups und Änderungsalarme für ~/.hermes, damit Session-Verzeichnisse die Platte nicht still füllen.
VPS-Dimensionierung und Kosten
Bei stabilem Telegram-Traffic ist Gateway-RAM die Hauptgrenze. Der Agent-Container hält Modellkontext; Sandboxen kosten extra mit terminal.backend: docker. Platte wächst mit Sessions, Skills und Memories — Reserve vor Cron-Logs.
Die Tabelle zeigt vier Profile. Starten Sie mit Recommended bei Shell-Tools oder mehreren Admins; Budget lab nur für kurze Pairing-Tests.
Überwachen Sie docker stats hermes: dauerhafte RAM-Überschreitung der Compose-Grenze → zuerst RAM erhöhen, dann mehr Sandbox-Skills.
| Profil | vCPU | RAM | Platte | Monatlich typ. | Einsatz |
|---|---|---|---|---|---|
| Minimum | 1 | 2 GB | 20 GB | ~4–5 $ | Nur Telegram-Gateway, kein Dashboard, ein Nutzer |
| Empfohlen | 2 | 4 GB | 40 GB | ~6–8 $ | Gateway + TERMINAL_BACKEND=docker Sandbox für Shell |
| Schwer | 2+ | 8 GB | 60 GB | ~12+ $ | Dashboard, Cron, großer Skills-Baum, mehrere Admins |
| Budget-Lab | 1 | 1 GB | 15 GB | ~3–4 $ | Nur Smoke- und Pairing-Tests — nicht Produktion |
Schritt-für-Schritt-Anleitung
- Docker auf dem VPS installieren — Ubuntu 22.04+: docker.io und docker-compose-v2 per apt, Nutzer in docker-Gruppe für compose ohne sudo.
sudo apt update && sudo apt install -y docker.io docker-compose-v2 sudo usermod -aG docker $USER newgrp docker - Persistentes Datenverzeichnis anlegen — Geheimnisse, Sessions und Config liegen in ~/.hermes auf dem Host — vor Image-Upgrades sichern.
mkdir -p ~/.hermes - Interaktiven Setup-Assistenten einmal ausführen — nousresearch/hermes-agent pullen und ~/.hermes:/opt/data mounten, damit .env und config.yaml geschrieben werden.
docker run -it --rm -v ~/.hermes:/opt/data nousresearch/hermes-agent setup - Telegram-Bot und Allowlist erstellen — @BotFather für Token, @userinfobot für numerische User-ID. Standard lehnt Unbekannte ab — kein GATEWAY_ALLOW_ALL_USERS=true mit Terminal.
TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz TELEGRAM_ALLOWED_USERS=987654321 - DM-Pairing-Codes genehmigen (optional) — Ohne Vorab-Allowlist erhalten Unbekannte einen einstündigen Code; per pairing approve auf dem Host genehmigen.
docker run --rm -v ~/.hermes:/opt/data nousresearch/hermes-agent pairing approve telegram XKGH5N7P - gateway run im Vordergrund smoke-testen — gateway run interaktiv starten, /help senden, /model und /compress prüfen vor Produktion.
docker run --rm -it -v ~/.hermes:/opt/data nousresearch/hermes-agent gateway run - Mit Docker Compose deployen (Produktion) — restart: unless-stopped, bind-mount ~/.hermes:/opt/data, Memory/CPU-Limits gegen Ausuferung.
services: hermes: image: nousresearch/hermes-agent:latest container_name: hermes restart: unless-stopped command: gateway run volumes: - ~/.hermes:/opt/data deploy: resources: limits: memory: 4G cpus: "2.0"docker compose up -d docker logs -f hermes - Terminalzugriff für Team-Bots härten — In config.yaml terminal.backend: docker, damit Shell-Tools in Sandbox statt Host-Kernel laufen.
# ~/.hermes/config.yaml excerpt terminal: backend: docker container_cpu: 1 container_memory: 5120 container_persistent: true
Fehlerbehebung
Bot antwortet nicht; Logs zeigen Telegram 401
Token in @BotFather neu erzeugen, TELEGRAM_BOT_TOKEN in ~/.hermes/.env aktualisieren, dann docker compose restart hermes. Häufigste Ursache nach Umbenennung oder Widerruf.
Nicht autorisierte Nachricht oder endloses Pairing
Persönliche numerische ID — nicht Bot-ID — in TELEGRAM_ALLOWED_USERS, oder pairing approve telegram <code>. Nur ein Gateway-Container soll ~/.hermes mounten.
Scoped Repo-Lesen, npm test und abgesicherte Auto-Fixes? Lesen Sie Hermes Agent MCP für Claude Opus 4.8: lokale Code-Sandbox 2026.
FAQ
Kann ich Hermes Docker auf einem Mac mini statt VPS betreiben?
Ja — dieselben docker run- und Compose-Muster funktionieren mit Docker Desktop oder Colima. VPS ist für Telegram-only 24/7 oft günstiger; Mac mini M4 für Apple-Toolchains.
Muss ich Port 8642 freigeben?
Nein für nur Telegram. 8642 nur für OpenAI-kompatible API oder externe Health-Checks mit API_SERVER_ENABLED=true und starkem API_SERVER_KEY.
Unterschied zu OpenClaw-Telegram-Leitfäden auf der Site?
OpenClaw-Artikel zielen auf Node.js-Gateways auf Cloud-Mac. Hermes nutzt hermes gateway mit nativen Telegram-Adaptern und Docker-Doku von Nous Research.
Welche Slash-Befehle zuerst testen?
Nach erster Antwort /status, /model, /compress, /new. Admin-Befehle eingeschränkt; Nutzer folgen der Allowlist.
Hermes lokal auf Cloud-Mac mini testen
Mieten Sie einen dauerhaft laufenden Mac mini M4, um Docker, Telegram-Pairing und Slash-Befehle zu prüfen, bevor Sie ~/.hermes auf den Produktions-VPS heben.