Hermes VPS Hetzner — Commandes Essentielles¶
Résumé¶
Aide-mémoire des commandes Hermes déployé sur le VPS Hetzner (178.105.46.57). Couvre la connexion SSH, la gestion Docker, le gateway Telegram, le mode CLI interactif, les fichiers de configuration et les variables d'environnement clés.
Contenu structuré¶
Connexion SSH au serveur¶
# Depuis WSL (Windows) — en root
ssh root@178.105.46.57
# Depuis WSL (Windows) — en kanmaber
ssh -i ~/.ssh/kanmaber_hetzner kanmaber@178.105.46.57
# Depuis Termux (Android)
ssh kanmaber@178.105.46.57
Gestion des conteneurs Docker¶
cd ~/hermes && docker compose up -d # Démarrer (gateway Telegram démarre automatiquement)
cd ~/hermes && docker compose down # Arrêter
cd ~/hermes && docker compose restart # Redémarrer
docker logs hermes-telegram -f # Logs en temps réel
docker logs hermes-telegram --tail 20 # Dernières 20 lignes
Mode Gateway Telegram¶
# Lancer manuellement
docker exec -it --user hermes hermes-telegram /opt/hermes/.venv/bin/hermes gateway run --replace
# Arrêter
docker exec -it --user hermes hermes-telegram /opt/hermes/.venv/bin/hermes gateway stop
# Statut
docker exec -it --user hermes hermes-telegram /opt/hermes/.venv/bin/hermes gateway status
Mode CLI Interactif¶
docker compose --profile cli run --rm hermes-cli
/exit # ou Ctrl+C pour quitter
Shell bash interactif dans les conteneurs¶
Entrer dans hermes-telegram (utilisateur hermes) :
docker exec -it --user hermes hermes-telegram bash
exit # pour sortir
Entrer dans hermes-cli sans démarrer Hermes :
docker compose --profile cli run --rm hermes-cli bash
hermes-clin'est actif que le temps de la commande — ce shell bash le lance sans démarrer l'agent.
Fichiers de configuration¶
| Fichier | Emplacement | Rôle |
|---|---|---|
.env |
/home/kanmaber/hermes/.env |
Clés API et tokens (hors dossier data/) |
config.yaml |
/home/kanmaber/hermes/data/config.yaml |
Modèle et comportement |
docker-compose.yml |
/home/kanmaber/hermes/docker-compose.yml |
Configuration Docker |
Variables clés .env¶
OPENROUTER_API_KEY= # Clé API OpenRouter
TELEGRAM_BOT_TOKEN= # Token du bot Telegram (même valeur que TELEGRAM_TOKEN)
TELEGRAM_TOKEN= # Token du bot Telegram
GATEWAY_ALLOW_ALL_USERS=true
HERMES_INFERENCE_PROVIDER=openrouter
Modèle utilisé¶
# /home/kanmaber/hermes/data/config.yaml
model:
default: "nvidia/nemotron-3-super-120b-a12b:free"
provider: "openrouter"
base_url: "https://openrouter.ai/api/v1"
docker-compose.yml complet¶
services:
hermes-telegram:
image: nousresearch/hermes-agent:latest
container_name: hermes-telegram
restart: unless-stopped
tty: true
ports:
- "127.0.0.1:8642:8642"
volumes:
- ./data:/opt/data
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/host/root:ro
env_file:
- data/.env
environment:
- HERMES_SKIP_CHMOD=1
mem_limit: 3g
cpus: "2"
security_opt:
- no-new-privileges:true
command: gateway run --replace
hermes-cli:
image: nousresearch/hermes-agent:latest
container_name: hermes-cli
stdin_open: true
tty: true
volumes:
- ./data:/opt/data
env_file:
- data/.env
environment:
- HERMES_SKIP_CHMOD=1
mem_limit: 1g
cpus: "1"
security_opt:
- no-new-privileges:true
profiles:
- cli
Surveillance du VPS depuis Telegram¶
Demander à Hermes directement dans le chat :
"Lis /host/proc/meminfo et df -h /host/root et dis-moi
l'utilisation RAM et disque de mon VPS"
Gestion des permissions (depuis root)¶
# Si permission denied sur data/
chown -R 10000:10000 /home/kanmaber/hermes/data/
# Si kanmaber n'a plus accès au dossier hermes
chown -R kanmaber:kanmaber /home/kanmaber/hermes/
chmod 644 /home/kanmaber/hermes/data/.env
Gestion des cron jobs (depuis Telegram)¶
cronjob list # Lister les jobs
cronjob pause <job_id> # Mettre en pause
cronjob resume <job_id> # Reprendre
cronjob remove <job_id> # Supprimer
Points clés¶
- Le token Telegram ne peut être utilisé que par un seul gateway à la fois
- Le CLI interactif et le gateway Telegram peuvent tourner simultanément
- Les fichiers de config sont dans
~/hermes/data/ - Modifier
/opt/data/dans le conteneur = modifier~/hermes/data/sur le host - Le
.envdoit être dans~/hermes/et pas dans~/hermes/data/— sinon Docker ne peut pas le lire - Le dossier
data/doit appartenir à UID 10000 (utilisateur hermes dans Docker) /host/proc→ RAM réelle du VPS (monté en lecture seule)/host/root→ disque réel du VPS (monté en lecture seule)/host/sys→ infos système du VPS (monté en lecture seule)
Liens connexes¶
- shared/references/hermes-commandes — version locale (WSL, ~/hermes-local)