# Local Development Override for Monitoring Stack # Usage: docker compose -f docker-compose.yml -f docker-compose.local.yml up -d # # IMPORTANT: Must use LIST format labels like base config to prevent merging # Dictionary format + List format = Both remain (merged) # List format + List format = Properly merged/replaced # # This override file: # - Changes entrypoints from 'websecure' to 'web' (HTTP only for local dev) # - Removes TLS/Let's Encrypt configuration by NOT including those labels # - Keeps all other configuration from docker-compose.yml services: portainer: labels: - "traefik.enable=true" - "traefik.http.routers.portainer.rule=Host(`portainer.${DOMAIN}`)" - "traefik.http.routers.portainer.entrypoints=web" - "traefik.http.routers.portainer.tls=false" - "traefik.http.services.portainer.loadbalancer.server.port=9000" prometheus: labels: - "traefik.enable=true" - "traefik.http.routers.prometheus.rule=Host(`prometheus.${DOMAIN}`)" - "traefik.http.routers.prometheus.entrypoints=web" - "traefik.http.routers.prometheus.tls=false" - "traefik.http.routers.prometheus.middlewares=prometheus-auth@docker" - "traefik.http.middlewares.prometheus-auth.basicauth.users=${PROMETHEUS_AUTH}" - "traefik.http.services.prometheus.loadbalancer.server.port=9090" grafana: environment: # Update root URL for HTTP - GF_SERVER_ROOT_URL=http://grafana.${DOMAIN}:8081 - GF_SECURITY_ADMIN_USER=${GRAFANA_ADMIN_USER} - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD} - GF_USERS_ALLOW_SIGN_UP=false - GF_INSTALL_PLUGINS=${GRAFANA_PLUGINS} - GF_LOG_LEVEL=info - GF_ANALYTICS_REPORTING_ENABLED=false labels: - "traefik.enable=true" - "traefik.http.routers.grafana.rule=Host(`grafana.${DOMAIN}`)" - "traefik.http.routers.grafana.entrypoints=web" - "traefik.http.routers.grafana.tls=false" - "traefik.http.services.grafana.loadbalancer.server.port=3000"