name: servicemap services: backend: build: context: . dockerfile: backend/Dockerfile container_name: servicemap-backend restart: unless-stopped environment: SERVICEMAP_DB: /data/servicemap.db SERVICEMAP_PROBE_INTERVAL: ${SERVICEMAP_PROBE_INTERVAL:-60} SERVICEMAP_PROBE_TIMEOUT: ${SERVICEMAP_PROBE_TIMEOUT:-5} SERVICEMAP_PROBE_RETRIES: ${SERVICEMAP_PROBE_RETRIES:-1} SERVICEMAP_PROBE_CONCURRENCY: ${SERVICEMAP_PROBE_CONCURRENCY:-10} SERVICEMAP_RETENTION_DAYS: ${SERVICEMAP_RETENTION_DAYS:-30} SERVICEMAP_EVENT_RETENTION_DAYS: ${SERVICEMAP_EVENT_RETENTION_DAYS:-90} SERVICEMAP_TLS_WARNING_DAYS: ${SERVICEMAP_TLS_WARNING_DAYS:-30} SERVICEMAP_FLAP_THRESHOLD: ${SERVICEMAP_FLAP_THRESHOLD:-6} SERVICEMAP_OBSERVATION_INTERVAL_SECONDS: ${SERVICEMAP_OBSERVATION_INTERVAL_SECONDS:-60} SERVICEMAP_PROBE_HOST: ${SERVICEMAP_PROBE_HOST:-} volumes: - ./data:/data healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health', timeout=3).read()"] interval: 20s timeout: 5s start_period: 10s retries: 5 labels: net.unraid.docker.managed: "dockerman" security_opt: - no-new-privileges:true logging: driver: json-file options: max-size: "20m" max-file: "3" frontend: build: context: . dockerfile: frontend/Dockerfile container_name: servicemap restart: unless-stopped depends_on: backend: condition: service_healthy ports: - "${SERVICEMAP_PORT:-1253}:80" healthcheck: test: ["CMD-SHELL", "wget -qO- http://127.0.0.1/health >/dev/null || exit 1"] interval: 20s timeout: 5s start_period: 10s retries: 5 labels: net.unraid.docker.managed: "dockerman" net.unraid.docker.webui: "http://${SERVICEMAP_WEBUI_HOST:-127.0.0.1}:${SERVICEMAP_PORT:-1253}" security_opt: - no-new-privileges:true logging: driver: json-file options: max-size: "20m" max-file: "3"