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¶
- shared/architecture/hermes-acces-vps-hetzner — architecture des interfaces Hermes sur VPS
- shared/references/vps-hermes-commandes — commandes SSH, Docker, gateway Telegram sur VPS
- shared/references/hermes-commandes — aide-mémoire Hermes Agent Docker
- shared/references/ssh-scp-commandes-distantes — SSH & SCP pour gérer les fichiers distants
- PsychoEnLigneV2/architecture/deploiement-sync-psycho-hermes — scripts concrets pour PsychoEnLigne