diff --git a/README.md b/README.md index 29968da..d26bd3e 100644 --- a/README.md +++ b/README.md @@ -11,11 +11,11 @@ tokens des abonnements Claude et Codex**. ## Architecture ``` -[Homelab] backend PNG (FastAPI + Playwright, Docker, derrière Caddy) +[Serveur] backend PNG (FastAPI + Playwright, Docker, derrière un reverse proxy) ├─ Claude : GET /api/oauth/usage (login isolé dédié, scope user:profile) - ├─ Codex : usage ChatGPT/Codex via le token Hermes (wham/usage) + ├─ Codex : usage ChatGPT/Codex via un token openai-codex (auth.json monté) ├─ Météo : Open-Meteo (sans clé) - ├─ NAS : moniteur maison nas_monitor (/api/status) + ├─ NAS : endpoint HTTP exposant l'état du NAS (/api/status) └─ Trackers : ratios des trackers torrent privés (login session) │ └── GET /image.png (1264×1680 niveaux de gris) @@ -23,9 +23,12 @@ tokens des abonnements Claude et Codex**. [Kobo Libra 2] boucle NickelMenu : fetch → fbink → suspend rtcwake ``` +Toutes les sources sauf Claude (Codex, NAS, trackers) sont **optionnelles** : laisser la +variable d'env correspondante vide masque la section. Voir `.env.example`. + - **`backend/`** — serveur Python qui agrège les données et génère l'image du dashboard. - **`kobo/`** — scripts client pour la Kobo (overlay sur `usetrmnl/trmnl-kobo`). -- **`dev/`** — utilitaires de dev (sonde de l'endpoint usage Claude). +- **`dev/`** — utilitaires de dev (sonde de l'endpoint usage, aperçu hors-ligne `preview.py`). ## Le « reste de tokens Claude » @@ -38,10 +41,11 @@ API officielle de quota restant.)* 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é. +sans aucun conflit avec le Claude Code de la machine de dev ou du serveur. Le backend +lit/rafraîchit **uniquement ce fichier isolé** (`/creds/.credentials.json`), jamais le +`~/.claude` partagé. -## Démarrage backend (dev, sur Mac) +## Démarrage backend (dev) ```sh cd backend @@ -52,13 +56,13 @@ cp ../.env.example ../.env # puis compléter # -> http://localhost:8080/image.png et /debug.html (itération design) ``` -## Déploiement (homelab, Docker + Caddy) +## Déploiement (serveur, Docker) -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, NAS, trackers. 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`). +1. Login Claude isolé dédié (scopes complets) sur le serveur : + `CLAUDE_CONFIG_DIR=~/.monitorink-claude claude auth login` +2. Créer `.env` (depuis `.env.example`) : coords météo, NAS, trackers. Adapter les chemins + des volumes dans `docker-compose.yml` (login Claude → `/creds`, données → `/data`). +3. `docker compose up -d --build`, puis exposer le service via le reverse proxy de ton choix + (le `docker-compose.yml` fourni utilise `caddy-docker-proxy` à titre d'exemple). Voir `kobo/README.md` pour l'installation côté Kobo.