81ef0a82ce
- web/lib/db.ts: pro Request frische readonly-Verbindung statt langlebigem Singleton. Eine gecachte WAL-Verbindung bekommt Writes des Collectors über den Docker-FUSE-Mount nicht mit -> Seite blieb leer. - collector.py: connect_async + reconnect_delay_set statt connect(), damit ein nicht erreichbarer Broker keinen Container-Crash-Loop auslöst, sondern in-process mit Backoff neu versucht wird. - docker-compose.yml: DB_PATH=/data/charges.db für den collector-Service erzwungen, damit ein relatives DB_PATH aus .env (lokaler Lauf) im Container nicht neben das gemountete Volume schreibt. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
33 lines
806 B
YAML
33 lines
806 B
YAML
# Auto-Charger Log — lokaler Server (ohne Traefik, nur Port-Mapping)
|
|
services:
|
|
|
|
collector:
|
|
build: ./collector
|
|
container_name: auto-charger-collector
|
|
restart: unless-stopped
|
|
env_file: .env
|
|
environment:
|
|
# überschreibt ein evtl. relatives DB_PATH aus .env (lokaler Lauf) —
|
|
# im Container muss die DB im gemounteten Volume /data liegen.
|
|
- DB_PATH=/data/charges.db
|
|
volumes:
|
|
- ./data:/data
|
|
|
|
web:
|
|
build:
|
|
context: ./web
|
|
args:
|
|
BUILD_DATE: ${BUILD_DATE:-local}
|
|
container_name: auto-charger-web
|
|
restart: unless-stopped
|
|
env_file: .env
|
|
environment:
|
|
- NODE_ENV=production
|
|
- DB_PATH=/data/charges.db
|
|
ports:
|
|
- "${WEB_PORT:-8082}:3000"
|
|
volumes:
|
|
- ./data:/data
|
|
depends_on:
|
|
- collector
|