Files

42 lines
1.4 KiB
YAML

# Operator runbook & network contract:
# 1. The robot's DNS resolver must answer lbo.ecouser.net with an A record for ADVERTISE_IP.
# 2. This container does not serve DNS.
# 3. ADVERTISE_IP is the Docker host's reserved LAN address, not BIND_ADDRESS and not a container bridge address.
# 4. That address has to remain reachable for the robot's powered-on lifetime (N95-FULL-SPECIFICATION.md §3.4).
# 5. Broker credentials (MQTT_USERNAME, MQTT_PASSWORD) should be supplied from an optional gitignored .env file.
# Do not embed credentials in this file.
services:
n95bridge:
build: .
restart: unless-stopped
ports:
- "8005:8005"
- "8007:8007"
- "5223:5223"
- "8080:8080"
environment:
PORT_FIRMWARE: "8005"
PORT_LOOKUP: "8007"
PORT_XMPP: "5223"
BIND_ADDRESS: "0.0.0.0"
ADVERTISE_IP: "192.0.2.10"
MQTT_HOST: "mqtt.example.invalid"
MQTT_TLS: "false"
MQTT_BASE: "ecovacs"
HA_DISCOVERY_PREFIX: "homeassistant"
CONTROLLER_JID: "n95bridge@ecouser.net/homeassistant"
RAW_COMMANDS: "false"
LOG_LEVEL: "info"
HEALTH_PORT: "8080"
TZ: "Europe/London"
# Optional uncommitted credentials file:
# env_file:
# - .env
healthcheck:
test: ["CMD", "/n95bridge", "healthcheck"]
interval: 10s
timeout: 3s
retries: 3
start_period: 5s