Files
EVCS/deploy/watchdog/compose.yaml
Tallagrand Thierry 32de4ffa35 Le dossier de journaux doit exister avant le premier up sur DSM
Docker de Synology refuse un bind-mount dont le dossier hote est absent,
la ou Docker standard le creerait. deploy/watchdog/logs est desormais
versionne vide, et le compose le dit.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
2026-09-01 03:25:37 +02:00

46 lines
1.8 KiB
YAML

# Chien de garde EVCS — à déployer sur le SECOND Synology (10.10.10.22).
#
# Il surveille le contrôleur qui tourne sur 10.10.10.17 et, s'il se tait,
# remet la consigne de puissance réseau de l'ESS à sa valeur de repos et
# arrête la borne — en MQTT direct sur le GX Venus (10.10.10.9), donc sans
# passer par Home Assistant ni par le cloud Tuya.
#
# ⚠️ NE JAMAIS le lancer sur 10.10.10.17 : un chien de garde hébergé par la
# machine qu'il surveille meurt avec elle.
#
# Mise en service :
# cd /volume2/projects/EVCS/EVCS/deploy/watchdog
# cp watchdog.env.exemple watchdog.env puis y coller la clé API n8n
# docker compose up -d
# docker compose logs -f
#
# Vérification sans risque, avant de le laisser en service :
# docker compose run --rm evcs-watchdog node tools/watchdog-evcs.mjs --once
# docker compose run --rm evcs-watchdog node tools/watchdog-evcs.mjs --once --dry-run --simulate-dead
services:
evcs-watchdog:
image: node:22-alpine
container_name: evcs-watchdog
restart: always
working_dir: /app
network_mode: bridge
volumes:
# Le dépôt en LECTURE SEULE : le chien de garde n'a aucune raison
# d'écrire dans le code qu'il exécute.
- /volume2/projects/EVCS/EVCS:/app:ro
# Son journal, seul point d'écriture, hors du code.
# ⚠️ Le dossier ./logs doit EXISTER avant `up` : le démon Docker de
# Synology DSM refuse un bind-mount dont le dossier hôte est absent,
# là où Docker standard le créerait. Il est versionné vide pour ça.
- ./logs:/var/log/evcs-watchdog:rw
env_file:
- watchdog.env
environment:
- TZ=Europe/Paris
- WATCHDOG_LOG=/var/log/evcs-watchdog/watchdog-evcs.log
command: ["node", "tools/watchdog-evcs.mjs"]
healthcheck:
test: ["CMD", "node", "-e", "process.exit(0)"]
interval: 5m