Aller au contenu

Workflow de Développement avec Hermes Agent

Résumé

Guide du pipeline de développement complet : Hermes (sur VPS Hetzner) code, débogue et déploie ; GitHub sert de pont entre le VPS et le PC local ; Telegram ou WSL servent de canaux d'instructions. Le workflow supporte trois modes : développement 100% Hermes, correction locale via Claude Code puis réintégration par Hermes, et débogage à distance.


Schéma global

📱 Telegram  ou  💻 Terminal WSL
         ↓ instructions
    Hermes sur VPS  →  App déployée sur VPS
                              ↓
                     ✅ Satisfait → GitHub → Votre PC
                     ❌ Non satisfait :
                        Option A : Hermes retravaille
                        Option B : Claude Code local → GitHub → Hermes intègre

Canaux de communication

Canal Usage
Telegram Instructions rapides, n'importe où
Terminal WSL Sessions longues, copier-coller de code
Claude Code (local) Production de code haute qualité
GitHub Pont VPS ↔ PC, versioning

Architecture technique

VOTRE PC (Windsurf / VS Code / Claude Code)
         ↓ git push
       GITHUB (pont + backup)
         ↓ git pull
    VPS HETZNER
    └── Docker Hermes (code, debug, déploiement, sync GitHub)
    └── App déployée (accessible en ligne)

Git tourne sur l'hôte (kanmaber), pas dans le container Docker Hermes. Les projets sont montés en volume : /home/kanmaber/projets//opt/projets/ dans Docker.


Cas d'usage concrets

Cas 1 — Développement standard (tout via Hermes)

Telegram : "Crée une API REST pour [fonctionnalité]"
Hermes   : code → teste → déploie → git push → GitHub → sync PC

Cas 2 — Intervention Claude Code local

Vous     : pas satisfait du code Hermes
Claude Code local → produit meilleur fichier
Telegram : "Récupère mon fichier X depuis GitHub et réintègre-le"
Hermes   : git pull → intègre → redéploie → notifie ✅

Cas 3 — Débogage à distance

Telegram : "L'endpoint /api/users retourne 500, corrige-le"
Hermes   : analyse logs → corrige → redéploie → notification ✅

Cas 4 — Depuis Termux (téléphone)

ssh kanmaber@178.105.46.57
docker compose --profile cli run --rm hermes-cli
# Session interactive Hermes depuis le téléphone


Configuration Git sur l'hôte

# Installation (depuis root)
apt install git -y

# Configuration (depuis kanmaber)
git config --global user.name "Hermes Agent"
git config --global user.email "votre@email.com"

# Clé SSH pour GitHub
ssh-keygen -t ed25519 -C "hermes-vps"
cat ~/.ssh/id_ed25519.pub  # À ajouter dans GitHub Settings → SSH Keys

Volume dans docker-compose.yml (Hermes)

volumes:
  - /home/kanmaber/projets:/opt/projets   # ← ajouter

Scripts essentiels

deploy.sh (déploiement automatique)

#!/bin/bash
set -e
cd /home/kanmaber/projets/PsychoEnLigne
git pull origin "${1:-main}"
docker compose build --no-cache
docker compose up -d

sync.sh (VPS → GitHub)

#!/bin/bash
set -e
cd /home/kanmaber/projets/PsychoEnLigne
git add -A
git commit -m "${1:-$(date '+%Y-%m-%d %H:%M') - Modifications Hermes}"
git push origin main

Synchronisation différée (cron)

Si le PC est éteint, Hermes pousse sur GitHub. Dès que le PC se rallume, git pull récupère les changements. Un cron VPS toutes les 30 minutes peut synchroniser directement sur le PC via SSH dès qu'il est accessible :

# crontab -e
*/30 * * * * /home/kanmaber/projets/PsychoEnLigne/sync_to_pc.sh >> ~/sync.log 2>&1

Étapes de mise en place

Étape Description
1 Git installé et configuré sur l'hôte kanmaber
2 Repo GitHub + token d'accès
3 Clé SSH VPS → GitHub
4 deploy.sh + sync.sh créés et exécutables
5 Volume /home/kanmaber/projets monté dans Hermes Docker
6 Cron pour sync différée (optionnel)
7 Notifications Telegram activées

Instructions types pour Hermes

"Crée une API REST pour [fonctionnalité]"
"L'endpoint /api/X retourne 500, corrige-le"
"Récupère le fichier X depuis GitHub branche main"
"Pousse les modifications sur GitHub"
"Fais un déploiement et notifie-moi"
"Analyse la qualité du code dans src/"

Points clés

  • Git sur l'hôte = persistance indépendante du cycle de vie du container Hermes
  • GitHub est le seul pont entre VPS et PC (Hermes n'accède jamais directement au PC)
  • Option B (Claude Code local → GitHub → Hermes) donne le meilleur code
  • Les tokens GitHub doivent avoir des permissions limitées par repo

Liens connexes