# Scrutiny — SMART Disk Health Monitoring Hub
#
# Runs on homelab-vm (Tailscale 100.67.40.126)
# Web UI:  http://100.67.40.126:8090  (also: scrutiny.vish.gg via NPM)
# InfluxDB: internal to this stack
#
# Collectors ship metrics from physical hosts to this hub.
# Collector composes at:
#   hosts/synology/atlantis/scrutiny-collector.yaml
#   hosts/synology/calypso/scrutiny-collector.yaml
#   hosts/synology/setillo/scrutiny-collector.yaml
#   hosts/physical/concord-nuc/scrutiny-collector.yaml
#   hosts/edge/rpi5-vish/scrutiny-collector.yaml
#
# Deploy: Portainer GitOps on endpoint 443399 (homelab-vm)

services:
  scrutiny-web:
    image: ghcr.io/analogj/scrutiny:master-web
    container_name: scrutiny-web
    ports:
      - "8090:8080"
    volumes:
      - scrutiny-config:/opt/scrutiny/config
      - scrutiny-influx:/opt/scrutiny/influxdb
    environment:
      GIN_MODE: release
      SCRUTINY_WEB_INFLUXDB_HOST: scrutiny-influxdb
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/api/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 60s
    depends_on:
      scrutiny-influxdb:
        condition: service_healthy

  scrutiny-influxdb:
    image: influxdb:2.2
    container_name: scrutiny-influxdb
    volumes:
      - scrutiny-influx:/var/lib/influxdb2
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8086/ping"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 20s

volumes:
  scrutiny-config:
  scrutiny-influx:
