Files
shaggy-solar/eg4battery/docker-compose.yml

51 lines
1.7 KiB
YAML
Raw Normal View History

2026-04-26 07:47:20 -04:00
# eg4-battery — local Docker deployment.
#
# Usage:
# docker compose build # one-time, after changes to Dockerfile / requirements / source
# docker compose up -d # start daemon in background
# docker compose logs -f # tail the daemon log
# docker compose down # stop + remove
#
# This deployment runs side-by-side with the systemd `eg4-battery.service`.
# Stop systemd before bringing this up, or each pack will be polled twice
# per cycle (and HA will see duplicate publishes from two MQTT clients):
# sudo systemctl stop eg4-battery.service
#
# Side-by-side cutover, once verified:
# sudo systemctl disable --now eg4-battery.service
services:
eg4-battery:
build: .
image: eg4-battery:local
container_name: eg4-battery
restart: unless-stopped
# USB-RS-485 adapters → daemon. The /dev/ttyUSBN device numbers can shift
# on USB reshuffles; the by-id symlinks (mounted via the volume below)
# are the stable identifiers the YAML config references.
devices:
- /dev/ttyUSB0:/dev/ttyUSB0
- /dev/ttyUSB1:/dev/ttyUSB1
- /dev/ttyUSB3:/dev/ttyUSB3
# Read-only bind: lets the container resolve /dev/serial/by-id/usb-FTDI_*
# symlinks (Docker doesn't propagate symlinks via `devices:`).
volumes:
- /dev/serial:/dev/serial:ro
- ${HOME}/.config/eg4-battery:/config:ro
# MQTT credentials override the YAML's mqtt: block when set. Comment out
# to use the values from eg4-battery.yaml.
environment:
- MQTT_HOST=10.0.0.41
- MQTT_USERNAME=mqtt
- MQTT_PASSWORD=nutterino
# Standard log driver — `docker logs` reads from stdout
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"