Claude: passage au login isolé + refresh (scope user:profile requis par /usage)

This commit is contained in:
2026-06-15 11:03:51 +02:00
parent 789fc92c39
commit 74d33eb693
6 changed files with 150 additions and 38 deletions

View File

@@ -29,9 +29,11 @@ de tokens — Anthropic n'expose pas de compteur absolu côté abonnement. Monit
le **% restant** (`100 utilisation`) et le temps avant reset. *(ChatGPT : hors scope, aucune
API officielle de quota restant.)*
Le backend s'authentifie avec un **token longue durée dédié** généré par `claude setup-token`
(env `MONITORINK_CLAUDE_TOKEN`) — il ne touche jamais aux credentials de Claude Code et ne fait
aucun refresh (le token est valide ~1 an).
L'endpoint `/usage` exige le scope OAuth `user:profile`, que le token `claude setup-token`
**n'a pas** (403). Le backend utilise donc les credentials d'un **login Claude isolé dédié**
à Monitorink (`CLAUDE_CONFIG_DIR` séparé) : scopes complets + lignée de refresh token propre,
sans aucun conflit avec le Claude Code du Mac ou du homelab. Le backend lit/rafraîchit
**uniquement ce fichier isolé** (`/creds/.credentials.json`), jamais le `~/.claude` partagé.
## Démarrage backend (dev, sur Mac)
@@ -46,8 +48,10 @@ cp ../.env.example ../.env # puis compléter
## Déploiement (homelab, Docker + Caddy)
1. Générer le token sur le homelab : `ssh -t homelab claude setup-token`.
2. Créer `.env` (depuis `.env.example`) avec le token, les coords météo, et la config HA.
1. Login Claude isolé dédié (scopes complets) sur le homelab :
`CLAUDE_CONFIG_DIR=/home/jerem/.monitorink-claude claude auth login`
2. Créer `.env` (depuis `.env.example`) : coords météo, config HA. Le compose monte
`~/.monitorink-claude` sur `/creds` (lecture/écriture pour le refresh du token).
3. `docker compose up -d --build` (le service s'expose via caddy-docker-proxy sur
`monitorink.homelab.nestor-server.fr`).