51 lines
1.7 KiB
YAML
51 lines
1.7 KiB
YAML
|
|
# 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"
|