services: whoami: restart: unless-stopped image: traefik/whoami command: - --port=2001 traefik: restart: unless-stopped image: "traefik:1.7.10" volumes: - ${REPO_DIR}/configurations/traefik/traefik.1.7.10.toml:/etc/traefik/traefik.toml - ${STORAGE_DIR}/certificates:/var/lib/certificates ports: - 80:80 - 443:443 db: image: mariadb:latest restart: unless-stopped ports: - 3306:3306 env_file: - envs/local.env - envs/production.env volumes: - ${STORAGE_DIR}/mariadb:/var/lib/mysql homeassistant: image: "ghcr.io/home-assistant/home-assistant:stable" volumes: - ${STORAGE_DIR}/homeassistant:/config restart: unless-stopped env_file: - envs/local.env - envs/production.env syncthing: image: lscr.io/linuxserver/syncthing:latest container_name: syncthing environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - ${STORAGE_DIR}/syncthing:/data1 ports: - 22000:22000/tcp - 22000:22000/udp - 21027:21027/udp restart: unless-stopped node-exporter: image: prom/node-exporter:latest container_name: node-exporter restart: unless-stopped volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro command: - '--path.procfs=/host/proc' - '--path.rootfs=/rootfs' - '--path.sysfs=/host/sys' - '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)' ports: - 9100:9100 prometheus: image: prom/prometheus:latest container_name: prometheus restart: unless-stopped volumes: - ${REPO_DIR}/configurations/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml - ${STORAGE_DIR}/prometheus:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.console.libraries=/etc/prometheus/console_libraries' - '--web.console.templates=/etc/prometheus/consoles' - '--web.enable-lifecycle' ports: - 9090:9090 grafana: image: grafana/grafana:latest volumes: - ${STORAGE_DIR}/grafana:/var/lib/grafana env_file: - envs/local.env - envs/production.env influxdb: container_name: influxdb image: influxdb restart: unless-stopped environment: - TZ=Europe/Brussels - DOCKER_INFLUXDB_INIT_MODE=setup env_file: - envs/local.env - envs/production.env volumes: - ${STORAGE_DIR}/influxdb/data:/var/lib/influxdb2 - ${STORAGE_DIR}/influxdb/config/:/etc/influxdb2 ulimits: nofile: soft: 32768 hard: 32768 otel-collector: container_name: otel-collector image: otel/opentelemetry-collector-contrib:0.111.0 restart: unless-stopped volumes: - ${REPO_DIR}/configurations/otel/collector-config.yaml:/etc/otelcol-contrib/config.yaml # Only enable if external services present # ports: # - 4317:4317 # OTLP gRPC receiver