From a14ce4664bc90f05545777c62707d92f02675bfa Mon Sep 17 00:00:00 2001 From: jerem Date: Thu, 18 Jun 2026 15:13:05 +0200 Subject: [PATCH] =?UTF-8?q?Doc=20d=C3=A9ploiement=20:=20sync=20storage=5Fs?= =?UTF-8?q?tate=20seul=20+=20purge=20token.json=20distant=20+=20r=C3=A8gle?= =?UTF-8?q?=20'un=20seul=20propri=C3=A9taire=20du=20refresh=5Ftoken'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- README.md | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index b5da2d6..651968b 100644 --- a/README.md +++ b/README.md @@ -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:/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 /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