From 410bfe706548c8dc63d38502a3fd99bc94c46266 Mon Sep 17 00:00:00 2001 From: Oskar Kapala Date: Wed, 27 May 2026 15:13:33 +0200 Subject: [PATCH] zigbee2mqtt: config goes in data dir (writable), not separate ro mount z2m migrates configuration.yaml on startup and needs write access. Remove the separate :ro config mount; rely on the base compose's /opt/homelab/data/zigbee2mqtt/data:/app/data read-write mount instead. configuration.yaml must exist at that path on the node before first run. Co-Authored-By: Claude Sonnet 4.6 --- .../runtime/zigbee2mqtt/docker-compose.override.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/hosts/chelsty-infra/runtime/zigbee2mqtt/docker-compose.override.yml b/hosts/chelsty-infra/runtime/zigbee2mqtt/docker-compose.override.yml index e2a3c53..ce16619 100644 --- a/hosts/chelsty-infra/runtime/zigbee2mqtt/docker-compose.override.yml +++ b/hosts/chelsty-infra/runtime/zigbee2mqtt/docker-compose.override.yml @@ -3,13 +3,9 @@ services: # mosquitto runs with network_mode: host on chelsty-infra. # extra_hosts maps the 'mosquitto' hostname to the host gateway IP so that # mqtt://mosquitto:1883 in configuration.yaml reaches the host-networked - # mosquitto process. Works with docker-compose v1 (docker 20.10+). + # mosquitto process. Requires Docker 20.10+ (present on chelsty-infra). extra_hosts: - "mosquitto:host-gateway" - volumes: - # configuration.yaml lives in the runtime config dir (not in Git). - # On chelsty-infra: /opt/homelab/config/zigbee2mqtt/configuration.yaml - - /opt/homelab/config/zigbee2mqtt/configuration.yaml:/app/data/configuration.yaml:ro environment: - TZ=Europe/Warsaw healthcheck: @@ -17,4 +13,9 @@ services: interval: 30s timeout: 10s retries: 3 - start_period: 60s + start_period: 90s + # Note: volumes NOT overridden here. + # The base docker-compose.yml mounts /opt/homelab/data/zigbee2mqtt/data:/app/data + # (read-write). configuration.yaml must be placed in that directory on the node: + # /opt/homelab/data/zigbee2mqtt/data/configuration.yaml + # z2m rewrites this file during migrations — read-only mount is not viable.