42 lines
1.4 KiB
YAML
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
|