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
46 lines
1.8 KiB
YAML
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
|