README: agnostique de l'infra perso (chemins/domaines/services génériques)
This commit is contained in:
32
README.md
32
README.md
@@ -11,11 +11,11 @@ tokens des abonnements Claude et Codex**.
|
|||||||
## Architecture
|
## 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)
|
├─ 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é)
|
├─ 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)
|
└─ Trackers : ratios des trackers torrent privés (login session)
|
||||||
│
|
│
|
||||||
└── GET /image.png (1264×1680 niveaux de gris)
|
└── 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
|
[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.
|
- **`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`).
|
- **`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 »
|
## 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`
|
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é**
|
**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,
|
à 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
|
sans aucun conflit avec le Claude Code de la machine de dev ou du serveur. Le backend
|
||||||
**uniquement ce fichier isolé** (`/creds/.credentials.json`), jamais le `~/.claude` partagé.
|
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
|
```sh
|
||||||
cd backend
|
cd backend
|
||||||
@@ -52,13 +56,13 @@ cp ../.env.example ../.env # puis compléter
|
|||||||
# -> http://localhost:8080/image.png et /debug.html (itération design)
|
# -> 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 :
|
1. Login Claude isolé dédié (scopes complets) sur le serveur :
|
||||||
`CLAUDE_CONFIG_DIR=/home/jerem/.monitorink-claude claude auth login`
|
`CLAUDE_CONFIG_DIR=~/.monitorink-claude claude auth login`
|
||||||
2. Créer `.env` (depuis `.env.example`) : coords météo, NAS, trackers. Le compose monte
|
2. Créer `.env` (depuis `.env.example`) : coords météo, NAS, trackers. Adapter les chemins
|
||||||
`~/.monitorink-claude` sur `/creds` (lecture/écriture pour le refresh du token).
|
des volumes dans `docker-compose.yml` (login Claude → `/creds`, données → `/data`).
|
||||||
3. `docker compose up -d --build` (le service s'expose via caddy-docker-proxy sur
|
3. `docker compose up -d --build`, puis exposer le service via le reverse proxy de ton choix
|
||||||
`monitorink.homelab.nestor-server.fr`).
|
(le `docker-compose.yml` fourni utilise `caddy-docker-proxy` à titre d'exemple).
|
||||||
|
|
||||||
Voir `kobo/README.md` pour l'installation côté Kobo.
|
Voir `kobo/README.md` pour l'installation côté Kobo.
|
||||||
|
|||||||
Reference in New Issue
Block a user