services:
  njspc-dash:
    build:
      context: .
      dockerfile: Dockerfile
    image: njspc-dash:local
    container_name: njspc-dash
    restart: unless-stopped
    environment:
      - TZ=${TZ:-UTC}
      - NODE_ENV=production
      - POOL_WEB_SERVICES_IP=njspc
      - POOL_WEB_SERVICES_PORT=4200
      - POOL_WEB_SERVICES_PROTOCOL=http://
      # Example overrides (environment variables mapped by config loader):
      # - POOL_WEB_SERVERS_HTTP_PORT=5150
      # - POOL_WEB_SERVERS_HTTP_ENABLED=true
      # - POOL_WEB_SERVERS_HTTPS_PORT=5151
      # - POOL_WEB_SERVERS_HTTPS_ENABLED=false
      # - POOL_WEB_SERVICES_IP=127.0.0.1
    ports:
      - "5150:5150"
    volumes:
      # Bind mount host config file to persist settings
      - ./dash-config.json:/app/config.json
      # Named volumes for other mutable data
      - njspc-dash-data:/app/data
      - njspc-dash-logs:/app/logs
      - njspc-dash-uploads:/app/uploads
    healthcheck:
      test: [ "CMD", "node", "-e", "require('net').createConnection({host:'127.0.0.1',port:5150},c=>{c.end();process.exit(0)}).on('error',()=>process.exit(1))" ]
      interval: 60s
      timeout: 5s
      start_period: 30s
      retries: 3
volumes:
  njspc-dash-data:
  njspc-dash-logs:
  njspc-dash-uploads:
