Le bind-mount d'un fichier unique reste accroché à l'inode capturé au démarrage ; Hermes réécrit auth.json par rename atomique -> le conteneur servait un token périmé (401), la section Codex disparaissait au refresh.
38 lines
1.6 KiB
YAML
38 lines
1.6 KiB
YAML
services:
|
|
monitorink:
|
|
build: ./backend
|
|
image: monitorink:latest
|
|
container_name: monitorink
|
|
restart: unless-stopped
|
|
env_file: .env
|
|
# Port HTTP direct sur le LAN pour la Kobo (busybox wget, sans Caddy/TLS).
|
|
ports:
|
|
- "8899:8080"
|
|
volumes:
|
|
# Login Claude ISOLÉ dédié à Monitorink (lecture/écriture pour le refresh du token).
|
|
# Créé via: CLAUDE_CONFIG_DIR=/home/jerem/.monitorink-claude claude auth login
|
|
- /home/jerem/.monitorink-claude:/creds:rw
|
|
# Token openai-codex maintenu frais par Hermes (lecture seule) -> usage Codex.
|
|
# On monte le DOSSIER (pas le fichier) : Hermes réécrit auth.json par rename()
|
|
# atomique (nouvel inode), or un bind-mount de fichier unique reste accroché à
|
|
# l'inode capturé au démarrage -> le conteneur servirait un token périmé (401).
|
|
# Monter le dossier fait re-résoudre /hermes/auth.json à chaque open().
|
|
- /home/jerem/.hermes:/hermes:ro
|
|
# Optionnel : burn rate via ccusage (lecture seule des logs Claude Code principaux).
|
|
# Décommenter + MONITORINK_CCUSAGE=1.
|
|
# - /home/jerem/.claude/projects:/root/.claude/projects:ro
|
|
networks:
|
|
- nestorr
|
|
labels:
|
|
caddy: http://monitorink.homelab.nestor-server.fr
|
|
caddy.reverse_proxy: "{{upstreams 8080}}"
|
|
healthcheck:
|
|
test: ["CMD", "python", "-c", "import urllib.request,sys; sys.exit(0) if urllib.request.urlopen('http://localhost:8080/health').status==200 else sys.exit(1)"]
|
|
interval: 60s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
networks:
|
|
nestorr:
|
|
external: true
|