Doc déploiement : sync storage_state seul + purge token.json distant + règle 'un seul propriétaire du refresh_token'

Le refresh_token est rotatif : Mac et homelab ne doivent pas le partager
(sinon invalid_grant). Procédure durcie + bootstrap/vérif de la chaîne.
This commit is contained in:
jerem
2026-06-18 15:13:05 +02:00
parent 03e281a810
commit a14ce4664b

View File

@@ -89,17 +89,28 @@ python server.py # auth via storage_state, refresh token automatique
# 2. Pousser le code
git add -A && git commit -m "..." && git push
# 3. Synchroniser la session vers le homelab (NON versionnée ; endpoints.json est dans git)
# storage_state.json suffit (le homelab tourne headless et rafraîchit le token tout seul).
scp .session/storage_state.json jerem@192.168.0.43:<path>/AntiCoco/.session/
# 3. Synchroniser la session : storage_state.json SEUL (cookie = refresh_token vierge).
# NE PAS copier token.json (son refresh_token a pu être consommé localement → invalide).
scp .session/storage_state.json homelab:/home/jerem/AntiCoco/.session/
# 4. Sur le homelab : déployer
# 4. Sur le homelab : supprimer l'ancien token.json (root, écrit par le conteneur) pour que
# la chaîne reparte du cookie frais, puis déployer.
ssh homelab
cd <path>/AntiCoco && git pull && docker compose up -d --build
cd /home/jerem/AntiCoco
docker exec anticoco rm -f /app/.session/token.json # sinon un vieux RT mort persiste
git pull && docker compose up -d --build
# bootstrap + vérif de la chaîne (doit afficher True puis logged_in: true) :
docker exec anticoco python -c "from hellofresh import auth; print('refresh', bool(auth._refresh_session())); print(auth.auth_status())"
```
Vérifier : `curl -s http://127.0.0.1:9200/mcp` (le serveur répond au handshake MCP).
> ⚠️ **Un seul propriétaire du refresh_token.** Le refresh_token est **rotatif** (chaque
> `/gw/refresh` invalide le précédent). Le Mac sert UNIQUEMENT à capturer la session ; une fois
> `storage_state.json` synchronisé, **ne lance plus `server.py` ni d'appel API depuis le Mac** —
> sinon Mac et homelab se disputent le token et la chaîne casse (`invalid_grant`). Le homelab,
> seul consommateur, reste authentifié tant qu'il tourne. En cas de casse : refaire §2 + §3-4.
## Intégration Hermes
Enregistrer AntiCoco dans la config MCP de Hermes (côté homelab), URL