Aller au contenu

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-cli n'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 .env doit ê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