Linux•21. September 2026• 113 Aufrufe

Hermes Agent auf einem Linux-VPS installieren: sichere Bereitstellung und 24/7-Betrieb

Hermes Agent auf einem Linux-VPS installieren: sichere Bereitstellung und 24/7-Betrieb

Hermes Agent ist ein Open-Source-KI-Agent, der von Nous Research entwickelt wird. Anders als eine einfache Chat-Oberfläche kann er Werkzeuge nutzen, Befehle ausführen, sich Dinge merken, Aufgaben planen und über Plattformen wie Telegram oder Discord antworten. Auf einem VPS installiert, bleibt er rund um die Uhr erreichbar, auch wenn Ihr eigener Rechner ausgeschaltet ist.

Diese Flexibilität bringt mehr Risiko mit sich als ein klassischer Chatbot. Ein Agent, der Befehle ausführen kann, sollte nicht als root laufen, keine Nachrichten aus dem gesamten Internet annehmen und seine API-Schlüssel nicht in einer für alle lesbaren Datei ablegen. Diese Anleitung beschreibt deshalb eine Installation, die für einen Server gedacht ist, mit einem eigenen Linux-Konto, einem vor der Ausführung geprüften Skript, einem systemd-Dienst, eingeschränktem Zugriff, Backups und einem Update-Ablauf.

Diese Anleitung wurde am 17. September 2026 unter Debian und Ubuntu geprüft. Hermes Agent entwickelt sich schnell weiter. Sehen Sie sich ein Update immer zuerst in der Vorschau an und lesen Sie die offiziellen Hinweise, bevor Sie es auf einer produktiven Instanz einspielen.

Diese Anleitung betrifft das Projekt Hermes Agent von Nous Research, das unter der MIT-Lizenz steht. Es ist nicht mit anderen Produkten namens Hermes zu verwechseln.

Was Sie einrichten werden

Nach der Installation steht folgende Architektur.

  • Hermes Agent läuft unter einem nicht privilegierten Linux-Benutzer namens hermes.
  • Konfigurationsdateien, Sitzungen und Geheimnisse bleiben in /home/hermes/.hermes/.
  • Das KI-Modell stammt von dem Dienst Ihrer Wahl oder von einem kompatiblen Endpunkt, den Sie selbst betreiben.
  • Das Hermes-Gateway läuft als systemd-Benutzerdienst und startet beim Booten neu.
  • Nur die Telegram-, Discord- oder sonstigen Konten, die Sie freigegeben haben, können mit dem Agenten sprechen.
  • Standardmäßig ist kein Hermes-Verwaltungsport öffentlich erreichbar.

Hermes Agent ist kostenlos und quelloffen, die Nutzung eines Modellanbieters kann aber kostenpflichtig sein. Das Projekt liefert kein großes Sprachmodell mit, das bequem auf einem kleinen VPS laufen würde. Verbrauch und Verarbeitung der Anfragen hängen daher vom gewählten Anbieter ab.

Voraussetzungen und Dimensionierung des VPS

Die offizielle Installationsdokumentation unterstützt Linux und verlangt im Wesentlichen Git, curl und xz-utils. Um die Python-Umgebung, Node.js und die übrigen Komponenten kümmert sich anschließend das Installationsprogramm.

Für diese Anleitung benötigen Sie Folgendes.

  • Einen aktuellen VPS mit Debian oder Ubuntu, zum Beispiel einen Linux-VPS von OuiHeberg.
  • Ein Administrationskonto mit sudo.
  • SSH-Zugang per Schlüssel.
  • Funktionierenden ausgehenden HTTPS-Verkehr und DNS-Auflösung.
  • Einen API-Schlüssel oder ein Abonnement beim gewählten Modellanbieter.
  • Optional ein Token für Telegram, Discord oder eine andere unterstützte Plattform.

Hermes nennt keine allgemeingültigen Mindestanforderungen an die Hardware, da der Bedarf von den aktivierten Werkzeugen abhängt. Die folgenden Werte sind Empfehlungen aus dem Betrieb, keine offiziellen Vorgaben.

EinsatzvCPUArbeitsspeicherSpeicherHinweis
CLI und Gateway mit entferntem Modell24 GB25 GB NVMeSinnvolle Basis für die private Nutzung
Browser, Audio oder mehrere Sitzungen48 GB50 GB NVMeMehr Reserve für Chromium und parallele Verarbeitung
Lokal ausgeführtes ModellVariabelVariabelVariabelHängt vollständig vom Modell ab, oft mit eigener GPU

Ein kleiner VPS reicht aus, wenn die Modellberechnung über eine API ausgelagert wird. Er kann knapp werden, wenn der Agent einen Browser startet, große Dateien verarbeitet oder mehrere Aufgaben gleichzeitig ausführt. Beobachten Sie nach einigen Tagen realer Nutzung Arbeitsspeicher, Speicherplatz und Prozesse.

Auf unserer Seite Hermes-Agent-VPS finden Sie die passenden Angebote für diesen Einsatz. Als Einstieg empfehlen wir dort den Linux VPS 04G mit 4 GB RAM.

Bevor Sie einen autonomen Agenten installieren, sollten auch die Sicherheitsgrundlagen des Servers stehen (Updates, SSH per Schlüssel, Firewall, Backups und Protokollierung). Unsere Checkliste zur Absicherung eines Linux-VPS beschreibt diese Voraussetzungen im Detail.

1. Das System aktualisieren

Melden Sie sich mit Ihrem Administrationskonto am VPS an und aktualisieren Sie dann den Paketindex und die installierten Pakete.

sudo apt update
sudo apt upgrade

Installieren Sie anschließend die vom Projekt genannten Voraussetzungen.

sudo apt install ca-certificates curl git xz-utils

Prüfen Sie, ob die Befehle verfügbar sind.

git --version
curl --version
xz --version

Wenn ein Update des Kernels oder einer wichtigen Systemkomponente einen Neustart verlangt, führen Sie ihn vor dem nächsten Schritt durch. So vermeiden Sie, Hermes zu untersuchen, während der Server noch alte Bibliotheken verwendet.

2. Ein eigenes Linux-Konto anlegen

Installieren Sie Hermes nicht unter /root und lassen Sie sein Gateway nicht als Superuser laufen. Die offizielle Produktions-Checkliste empfiehlt ausdrücklich ein Konto ohne Root-Rechte.

Legen Sie einen Benutzer namens hermes an.

sudo adduser --disabled-password --gecos "" hermes

Fügen Sie ihn nicht der Gruppe sudo hinzu. Nehmen Sie ihn auch nicht ohne sorgfältige Abwägung in die Gruppe docker auf, denn direkter Zugriff auf den Docker-Socket verschafft in der Regel Rechte, die root auf dem Host gleichkommen.

Um dieses Konto per SSH zu verwalten, hinterlegen Sie nur den gewünschten öffentlichen Schlüssel. Wenn die Datei ~/.ssh/authorized_keys Ihres aktuellen Kontos genau den Schlüssel enthält, der auch auf das Konto hermes zugreifen soll, können Sie sie so kopieren.

sudo install -d -m 0700 -o hermes -g hermes /home/hermes/.ssh
sudo install -m 0600 -o hermes -g hermes \
  ~/.ssh/authorized_keys /home/hermes/.ssh/authorized_keys

Prüfen Sie die Berechtigungen.

sudo ls -ld /home/hermes /home/hermes/.ssh
sudo ls -l /home/hermes/.ssh/authorized_keys

Aktivieren Sie danach Lingering, damit Benutzerdienste nach dem Abmelden weiterlaufen. So startet der systemd-Dienst von Hermes beim Booten, ohne dass eine SSH-Sitzung offen bleiben muss.

sudo loginctl enable-linger hermes

Prüfen Sie das Ergebnis.

loginctl show-user hermes -p Linger

Die erwartete Ausgabe lautet Linger=yes.

Öffnen Sie jetzt eine neue SSH-Verbindung direkt mit diesem Konto.

ssh hermes@IP_ADRESSE_DES_VPS

Sofern nicht anders angegeben, werden alle folgenden Befehle in dieser Sitzung und ohne sudo ausgeführt.

3. Das offizielle Installationsprogramm herunterladen und prüfen

Hermes veröffentlicht einen Schnellinstallationsbefehl.

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

Er ist praktisch, übergibt den empfangenen Inhalt aber sofort an den Interpreter. Auf einem Server ist es besser, Download und Ausführung zu trennen, damit Sie das Skript lesen und den genauen Fingerabdruck der verwendeten Datei festhalten können.

Laden Sie das Installationsprogramm von der offiziellen Domain herunter.

curl --proto '=https' --tlsv1.2 -fsSLo /tmp/hermes-install.sh \
  https://hermes-agent.nousresearch.com/install.sh

Lassen Sie sich den SHA-256-Fingerabdruck anzeigen und lesen Sie den Inhalt.

sha256sum /tmp/hermes-install.sh
less /tmp/hermes-install.sh

Der Fingerabdruck identifiziert die geprüfte Datei und dokumentiert Ihre Bereitstellung. Für sich genommen ist er keine Signatur des Herausgebers. Prüfen Sie mindestens, dass das Skript wirklich von der offiziellen Domain stammt, kein unerwartetes Ziel enthält und die Installationspfade mit der Dokumentation übereinstimmen.

Minimale Installation für einen VPS ohne Browser

Wenn der Agent Chromium nicht steuern und keine visuellen Steuerfunktionen nutzen muss, verkleinern Sie die installierte Software.

bash /tmp/hermes-install.sh --skip-browser --skip-computer-use

Diese Variante passt zu einem Bot, der vor allem ein entferntes Modell, APIs und textbasierte Werkzeuge nutzt. Die weggelassenen Komponenten lassen sich später nachrüsten.

Installation mit Browser-Automatisierung

Um die lokalen Browser-Werkzeuge zu nutzen, führen Sie das Skript einfach ohne diese Optionen aus.

bash /tmp/hermes-install.sh

Die Installation der Chromium-Systembibliotheken erfordert Administratorrechte. Da das Konto hermes bewusst kein sudo hat, installiert das Programm, was im Benutzerbereich möglich ist, und zeigt dann den genauen Befehl an, den ein Administrator ausführen muss. Führen Sie ihn über Ihr Administrationskonto aus. Die offizielle Dokumentation nennt für Debian und Ubuntu auch sudo npx playwright install-deps chromium, besser ist aber der Befehl, den die tatsächlich installierte Version anzeigt.

Das Installationsprogramm legt die Elemente normalerweise an folgenden Orten ab.

ElementOrt pro Benutzer
Projektcode~/.hermes/hermes-agent/
Befehl hermes~/.local/bin/hermes
Konfiguration und Daten~/.hermes/

In diesem Modus bleibt die Installation auf /home/hermes beschränkt. Eine mit sudo gestartete Installation würde eine andere Struktur verwenden und die Geheimnisse womöglich unter /root/.hermes ablegen, was wir hier vermeiden.

4. Die Installation prüfen

Laden Sie die Shell-Umgebung neu.

source ~/.bashrc

Prüfen Sie dann den Pfad des Befehls, die Version und den allgemeinen Zustand.

command -v hermes
hermes --version
hermes doctor

Das erste Ergebnis sollte normalerweise auf /home/hermes/.local/bin/hermes zeigen. Der Befehl hermes doctor prüft unter anderem Umgebung, Konfiguration und Abhängigkeiten.

Wird hermes weiterhin nicht gefunden, fügen Sie das Benutzerverzeichnis zum PATH hinzu und laden Sie die Shell neu.

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Führen Sie die Quelldatei ~/.hermes/hermes-agent/hermes nicht direkt mit dem System-Python aus. Laut Dokumentation wird so die virtuelle Umgebung umgangen, was zu Fehlern wegen fehlender Module führen kann.

5. Den Modellanbieter konfigurieren

Hermes steuert ein Modell, doch der VPS stellt den Inferenzdienst nicht selbst bereit. Starten Sie den Auswahlassistenten.

hermes model

Sie können auch den allgemeinen Assistenten verwenden.

hermes setup

Das Projekt unterstützt mehrere Anbieter und eigene Endpunkte. Wählen Sie nach Ihren Anforderungen an Datenschutz, Kosten, Datenstandort und Werkzeugkompatibilität. Bei einem externen Anbieter verlassen die Anfragen an das Modell Ihren VPS. Laut offizieller FAQ sammelt Hermes keine Telemetrie und speichert Unterhaltungen, Gedächtnis und Fähigkeiten lokal, die Aufrufe gehen aber trotzdem an den von Ihnen konfigurierten Anbieter.

Geben Sie die Schlüssel im interaktiven Assistenten ein. Schreiben Sie kein Geheimnis direkt in einen Befehl, da es sonst im Shell-Verlauf, in den Protokollen eines Automatisierungswerkzeugs oder in der Prozessliste landen könnte.

Schützen Sie anschließend die eventuell angelegten sensiblen Dateien.

chmod 700 ~/.hermes
find ~/.hermes -maxdepth 1 -type f \
  \( -name '.env' -o -name 'auth.json' \) \
  -exec chmod 600 {} +

Die Geheimnisse gehören dem Konto hermes und dürfen nie in ein Git-Repository kopiert werden. Für den Unternehmenseinsatz beschreibt die Dokumentation zu Geheimnissen auch das Laden aus externen Verwaltungen wie 1Password oder Bitwarden Secrets Manager.

Testen Sie zum Schluss eine einfache Anfrage.

hermes chat -q "Antworte nur mit: Installation einsatzbereit"

Schlägt der Aufruf fehl, prüfen Sie Schlüssel, Modellname, Guthaben beim Anbieter, Serverdatum und HTTPS-Verbindung, bevor Sie weitermachen.

6. Die gespeicherten Daten verstehen

Das Verzeichnis ~/.hermes/ sollten Sie vorrangig schützen und sichern. Je nach genutzten Funktionen enthält es insbesondere folgende Dateien.

PfadZweckSensibilität
config.yamlNicht geheime Konfiguration des Agenten und seiner WerkzeugeMittel
.envAPI-Schlüssel, Tokens und geheime EinstellungenKritisch
auth.jsonAuthentifizierungsdatenKritisch
state.dbDauerhafter Zustand von Gateway und SitzungenHoch
SOUL.mdAnweisungen und Identität des AgentenMittel
memories/Gedächtnis des AgentenHoch
sessions/Verlauf und Kontext der SitzungenHoch
skills/Hinzugefügte FähigkeitenVariabel
cron/Geplante AufgabenHoch
logs/BetriebsprotokolleVariabel

Eine Datei ohne API-Schlüssel ist deshalb noch lange nicht öffentlich. Unterhaltungen, Gedächtnis und Protokolle können Geschäftsdaten, interne Pfade oder Auszüge aus Dokumenten enthalten. Beschränken Sie den Zugriff auf das Konto hermes und verschlüsseln Sie Backups außerhalb des Servers.

7. Die Konfiguration vor dem 24/7-Betrieb härten

Öffnen Sie den integrierten Konfigurationseditor.

hermes config edit

Die folgenden Einstellungen legen eine vorsichtige Richtlinie ausdrücklich fest.

approvals:
  mode: smart
  timeout: 300
  cron_mode: deny
  single_query_mode: deny
  unattended_mode: deny

security:
  allow_private_urls: false

Validieren Sie anschließend die Konfiguration.

hermes config check

Der Modus smart analysiert als gefährlich eingestufte Befehle und fragt nach einer Bestätigung, wenn eine menschliche Entscheidung nötig ist. Der Modus off, auch als --yolo-Modus bekannt, schaltet diese Rückfragen ab. Für einen per Messenger erreichbaren Agenten auf einem VPS ist er ungeeignet.

Die drei Werte deny verhindern, dass eine geplante Aufgabe, eine Einzelanfrage oder eine API ohne anwesenden Bediener einen gefährlichen Befehl automatisch freigibt. Die Einstellung allow_private_urls: false, der Standardwert, erhält den Schutz vor Anfragen an private Adressbereiche, Loopback und Cloud-Metadatenadressen. Aktivieren Sie sie nur, wenn der Zugriff auf das interne Netz unverzichtbar ist und Sie diese Verschiebung der Vertrauensgrenze in Kauf nehmen.

Diese Mechanismen senken das Risiko, machen die lokale Ausführung aber nicht zur Sandbox. Ein bösartiger Prompt, ein kompromittiertes Werkzeug oder ein Fehler des Modells kann weiterhin alle Dateien ändern, auf die der Benutzer hermes Zugriff hat.

Befehle in einem Container isolieren

Für ein produktives Gateway, das Code ausführen darf, empfiehlt die Dokumentation ein isoliertes Backend, insbesondere Docker.

terminal:
  backend: docker
  docker_forward_env: []
  container_cpu: 1
  container_memory: 2048
  container_disk: 10240
  container_persistent: false

Diese Grenzwerte sind ein Beispiel, das Sie an Arbeitsspeicher und Speicherplatz Ihres VPS anpassen. Eine leere Liste docker_forward_env verhindert, dass Servervariablen an die im Container gestarteten Befehle weitergereicht werden.

Diese Option setzt eine sauber gehärtete Docker-Installation voraus. Sie darf nicht dazu führen, dass das Konto hermes blind uneingeschränkten Zugriff auf den Docker-Socket erhält. Um das Berechtigungsmodell zu verstehen, lesen Sie Docker auf einem Linux-VPS installieren und unsere Anleitung Docker Compose auf einem Linux-VPS. In einer sensiblen Umgebung trennt das SSH-Backend zu einer separaten Arbeitsmaschine das Gateway und die Messenger-Geheimnisse noch besser von den Befehlen, die das Modell erzeugt.

8. Telegram, Discord oder einen anderen Messenger anbinden

Hermes bietet ein gemeinsames Gateway für mehrere Plattformen. Starten Sie den zugehörigen Assistenten.

hermes gateway setup

Der Assistent fragt die Zugangsdaten der jeweiligen Plattform ab, zum Beispiel das Token eines Telegram- oder Discord-Bots. Legen Sie einen eigenen Bot an, vergeben Sie nur die nötigen Berechtigungen und verwenden Sie kein Token, das bereits von einer anderen Anwendung genutzt wird.

Berechtigte Personen einschränken

Ein gültiges Bot-Token reicht nicht aus. Sie müssen auch festlegen, wer dem Agenten Anweisungen schicken darf. Hermes weist unbekannte Benutzer ab, solange keine Freigabeliste definiert und der globale Zugriff nicht aktiviert ist. Behalten Sie dieses standardmäßig geschlossene Verhalten bei.

Zwei Methoden stehen zur Verfügung.

  1. Die Kopplung per Code nutzen und nur die erwartete Anfrage bestätigen.
  2. Die berechtigten Kennungen für jede Plattform ausdrücklich eintragen.

Ausstehende Kopplungen zeigen Sie mit folgendem Befehl an.

hermes pairing list

Einen über den vorgesehenen Kanal erhaltenen Telegram-Code bestätigen Sie so.

hermes pairing approve telegram ERHALTENER_CODE

Wenn Sie eine ausdrückliche Liste bevorzugen, tragen Sie nur die nötigen Kennungen in ~/.hermes/.env ein.

TELEGRAM_ALLOWED_USERS=123456789
DISCORD_ALLOWED_USERS=111222333444555666

Setzen Sie in der Produktion nicht GATEWAY_ALLOW_ALL_USERS=true. Damit könnte jeder, der den Bot erreicht, den Agenten ansprechen, Ihr Modellbudget verbrauchen und unter Umständen seine Werkzeuge auslösen.

Prüfen Sie nach einer Änderung an .env erneut die Berechtigungen.

chmod 600 ~/.hermes/.env

9. Das Gateway als systemd-Dienst einrichten

Installieren Sie den von Hermes mitgelieferten Benutzerdienst.

hermes gateway install
hermes gateway start
hermes gateway status

Da loginctl enable-linger hermes bereits ausgeführt wurde, läuft der Dienst nach dem Schließen der SSH-Sitzung weiter und startet mit dem VPS neu. Prüfen Sie, ob er aktiviert ist.

systemctl --user is-enabled hermes-gateway
systemctl --user is-active hermes-gateway

Sehen Sie sich die letzten Protokolleinträge an.

journalctl --user -u hermes-gateway -n 100 --no-pager

Um die Ereignisse live zu verfolgen, fügen Sie die Option -f hinzu.

journalctl --user -u hermes-gateway -f

Die Dokumentation bietet auch einen Systemdienst an, der mit sudo hermes gateway install --system installiert wird. Auf einem VPS mit nur einem Benutzer ist der Benutzerdienst mit Lingering meist einfacher und behält eindeutig die nicht privilegierte Identität bei. Installieren Sie nicht gleichzeitig eine Benutzer- und eine System-Unit für dasselbe Profil, sonst laufen zwei konkurrierende Gateways.

Optionalen Watchdog hinzufügen

Systemd kann das Gateway neu starten, wenn seine Ereignisschleife hängt. Tragen Sie diese Einstellung in ~/.hermes/config.yaml ein.

gateway:
  systemd_watchdog_seconds: 120

Erzeugen Sie die Unit danach neu und starten Sie sie neu.

hermes gateway install --force
hermes gateway stop
hermes gateway start
hermes gateway status

Dieser Watchdog erkennt einen hängenden Prozess. Er ersetzt nicht die Überwachung der Verbindung zu Telegram, Discord oder dem Modellanbieter.

10. Muss ein Port in der Firewall geöffnet werden?

Bei einem klassischen Telegram- oder Discord-Bot baut das Gateway die nötigen ausgehenden Verbindungen selbst auf. Normalerweise müssen Sie keinen Hermes-Port im Internet veröffentlichen. Die Firewall kann also weiterhin nur die gewünschten Dienste zulassen, insbesondere SSH und bereits betriebene Webdienste.

Öffnen Sie keinen Port, nur weil er in einem Docker-Beispiel oder einer API-Dokumentation auftaucht. Server- und Dashboard-Oberflächen vergrößern die Angriffsfläche. Wenn Sie eine Weboberfläche brauchen, halten Sie sich an diese Regeln.

  • Binden Sie sie an 127.0.0.1 statt an 0.0.0.0.
  • Greifen Sie über einen SSH-Tunnel oder ein VPN darauf zu.
  • Oder stellen Sie sie hinter einen HTTPS-Reverse-Proxy mit starker Authentifizierung.
  • Betrachten Sie eine geheime Portnummer nie als Zugriffskontrolle.

Ein lokaler SSH-Tunnel folgt diesem Prinzip.

ssh -L 9119:127.0.0.1:9119 hermes@IP_ADRESSE_DES_VPS

Dieser Befehl startet das Dashboard nicht. Er macht nur einen bereits an Loopback gebundenen Dienst von Ihrem lokalen Rechner aus erreichbar. Wenn Sie eine Anwendung über Nginx oder Apache veröffentlichen, schützen Sie die Übertragung zusätzlich mit TLS, wie in unserer Anleitung Certbot und Let's Encrypt auf einem VPS beschrieben.

11. Hermes sichern, ohne die Geheimnisse zu vergessen

Ein Backup des VPS ist nützlich, ein Export auf Anwendungsebene erleichtert aber auch die Wiederherstellung auf einer anderen Maschine. Hermes bietet dafür einen eigenen Befehl.

hermes backup

Laut offiziellem Migrationsablauf erzeugt dieser Befehl im Home-Verzeichnis ein Archiv hermes-backup-<timestamp>.zip, das den gesamten Inhalt von ~/.hermes/ enthält, darunter Konfiguration, API-Schlüssel, Gedächtnis, Sitzungen, Fähigkeiten und Profile.

Dieses Archiv ist also ein kritisches Geheimnis. Gehen Sie nach seiner Erstellung so vor.

  1. Prüfen Sie, ob es existiert und ob seine Größe plausibel ist.
  2. Testen Sie seine Integrität mit unzip -t.
  3. Übertragen Sie es auf einen Speicher außerhalb des VPS.
  4. Verschlüsseln Sie es im Ruhezustand.
  5. Wenden Sie eine Aufbewahrungsrichtlinie an.
  6. Löschen Sie die lokale Kopie, sobald Sie sie nicht mehr brauchen.

Hier ein Beispiel für die Prüfung.

ls -lh ~/hermes-backup-*.zip
unzip -t ~/hermes-backup-JJJJ-MM-TT_HH-MM-SS.zip

Ersetzen Sie den Namen durch den tatsächlich erzeugten. Verwenden Sie in einem Wiederherstellungsbefehl keinen Platzhalter, wenn mehrere Archive vorhanden sind.

Die Wiederherstellung erfolgt auf einer bestehenden Hermes-Installation.

hermes import ~/hermes-backup-JJJJ-MM-TT_HH-MM-SS.zip
hermes setup
hermes doctor

Testen Sie diesen Ablauf regelmäßig auf einem temporären VPS oder in einer isolierten Umgebung. Ein ungetestetes Backup bleibt eine Annahme.

hermes profile export ist nicht dasselbe wie hermes backup. Der Profilexport lässt Zugangsdaten bewusst weg, das vollständige Backup enthält sie. Ersteres dient zum Teilen eines bereinigten Profils, Letzteres zur Wiederherstellung nach einem Vorfall.

12. Hermes sauber aktualisieren

Hermes entwickelt sich schnell. Vermeiden Sie trotzdem blinde automatische Updates auf einem Gateway, das Werkzeuge ausführt. Prüfen Sie zuerst Verfügbarkeit und Ablaufplan.

hermes update --check
hermes update --plan

Der erste Befehl prüft, ob ein Update vorliegt, ohne Dateien zu ändern oder das Gateway neu zu starten. Der zweite erfasst die Installation und die Dienste, die betroffen wären.

Fordern Sie bei einer wichtigen Bereitstellung vor dem Update ein vollständiges Backup an.

hermes update --backup

Laut Update-Dokumentation aktualisiert dieser Vorgang Code und Abhängigkeiten, führt Konfigurationsmigrationen durch und startet die erkannten Gateways neu. Die Protokolle liegen in ~/.hermes/logs/update.log, ausführliche Belege in ~/.hermes/logs/update_receipts/.

Prüfen Sie danach den Zustand der Installation.

cd ~/.hermes/hermes-agent
git status --short
hermes doctor
hermes --version
hermes gateway status

Eine leere Ausgabe von git status --short bedeutet, dass der Arbeitsbaum keine lokalen Änderungen enthält. Tauchen Dateien auf, obwohl Sie den Code nie verändert haben, untersuchen Sie sie vor jedem weiteren Update.

Um bei jedem Update ein vollständiges Backup zu erzwingen, ergänzen Sie diese Einstellung.

updates:
  pre_update_backup: full

Bewahren Sie trotzdem eine externe Kopie auf. Ein Archiv, das nur auf dem VPS liegt, schützt weder vor dem Verlust des Servers noch vor einem kompromittierten Konto.

13. Die Installation überwachen und Fehler beheben

Halten Sie diese kurze Diagnosefolge griffbereit.

hermes doctor
hermes config check
hermes gateway status
journalctl --user -u hermes-gateway -n 200 --no-pager
df -h
free -h

Sie deckt die meisten Störungen ab, ob ungültige Konfiguration, gestoppter Dienst, Plattformfehler, volle Festplatte oder zu wenig Arbeitsspeicher.

Der Befehl hermes wird nicht gefunden

Laden Sie ~/.bashrc neu und prüfen Sie den Pfad.

source ~/.bashrc
printf '%s\n' "$PATH"
ls -l ~/.local/bin/hermes

Das Gateway stoppt nach dem Trennen der SSH-Verbindung

Prüfen Sie Lingering über das Administratorkonto.

loginctl show-user hermes -p Linger

Aktivieren Sie es bei Bedarf erneut.

sudo loginctl enable-linger hermes

Der Bot antwortet den falschen Personen oder niemandem

Prüfen Sie die Benutzerlisten und Kopplungen.

hermes pairing list
grep -E '^(TELEGRAM|DISCORD|GATEWAY).*ALLOWED_USERS' ~/.hermes/.env

Der Befehl grep zeigt hier nur die berechtigten Kennungen, nicht die Zeilen mit Tokens. Kontrollieren Sie Ihr Terminal trotzdem, bevor Sie die Ausgabe in ein Support-Ticket kopieren.

Die Konfiguration passt nach einem Update nicht mehr

Nutzen Sie die integrierten Werkzeuge zur Validierung und Migration.

hermes config check
hermes config migrate

Lesen Sie die vorgeschlagenen Änderungen, bevor Sie sie übernehmen, und führen Sie danach erneut hermes doctor aus.

Der Aufruf des Modells schlägt fehl

Häufige Ursachen sind ein ungültiger Schlüssel, ein nicht freigegebenes Modell, ein aufgebrauchtes Guthaben, ein falscher Endpunkt oder ein DNS-Problem. Testen Sie Auflösung und HTTPS, ohne den Schlüssel anzuzeigen.

getent hosts hermes-agent.nousresearch.com
curl -I https://hermes-agent.nousresearch.com/

Konfigurieren Sie den Anbieter dann mit hermes model neu, statt ein Geheimnis blind zu bearbeiten.

Der Browser startet nicht

Führen Sie hermes doctor aus und verwenden Sie den Befehl für die Systemabhängigkeiten, den das Installationsprogramm angezeigt hat. Die Chromium-Bibliotheken muss ein Administrator installieren, Browser und Profil bleiben dagegen dem Konto hermes zugeordnet. Geben Sie dem Dienstkonto nicht nur zur Lösung dieses Problems sudo.

14. Checkliste vor dem Produktivbetrieb

Bevor der Agent dauerhaft läuft, bestätigen Sie jeden Punkt.

  • Hermes läuft mit dem nicht privilegierten Benutzer hermes, nie mit root.
  • Das Konto hermes gehört weder zur Gruppe sudo noch ohne Begründung zur Gruppe docker.
  • Das Installationsskript wurde von der offiziellen Domain geladen und vor der Ausführung geprüft.
  • hermes doctor meldet keinen unverstandenen Fehler.
  • Die Dateien .env und auth.json sind auf ihren Eigentümer beschränkt.
  • Messenger-Konten werden per Kopplung oder ausdrücklicher Liste kontrolliert.
  • GATEWAY_ALLOW_ALL_USERS ist nicht aktiviert.
  • Der Freigabemodus steht nicht auf off.
  • Aufgaben ohne Bediener lehnen gefährliche Befehle ab.
  • Private URLs bleiben gesperrt, außer bei dokumentiertem Bedarf.
  • Kein Dashboard und kein API-Port ist direkt aus dem Internet erreichbar.
  • Vollständige Backups sind verschlüsselt, extern gelagert und getestet.
  • Updates werden vorab geprüft, gesichert und validiert.
  • Protokolle, Speicherplatz und Arbeitsspeicher werden überwacht.

Fazit

Hermes Agent auf einem VPS zu installieren bedeutet mehr, als eine Zeile curl | bash auszuführen. Die eigentliche Arbeit besteht darin, eine dauerhafte Vertrauensgrenze zu ziehen, mit eigenem Linux-Benutzer, begrenztem Messenger-Zugang, geschützten Geheimnissen, isolierten Befehlen, keinem unnötigen öffentlichen Port und wiederherstellbaren Backups.

Der empfohlene Weg ist bewusst schlicht gehalten. Beginnen Sie ohne Browser und ohne öffentliche Oberfläche, prüfen Sie das Modell auf der Kommandozeile und fügen Sie dann eine Integration nach der anderen hinzu. So bleibt die Fehlersuche einfach und Sie vergeben keine Rechte, bevor Sie sie wirklich brauchen.

Quellen und offizielle Dokumentation