services:
  panel:
    build:
      context: .
      dockerfile: panel/backend/Dockerfile
    container_name: ghard-panel
    ports:
      - "${GHARD_PANEL_PORT:-8000}:8000"
    environment:
      # задай свой токен: `cp panel/backend/.env.example .env` и поправь
      GHARD_ADMIN_TOKEN: ${GHARD_ADMIN_TOKEN:-change-me}
      # gnexus-auth (OAuth PKCE): задаёшь CLIENT_ID — панель закрывается входом
      GHARD_AUTH_BASE_URL: ${GHARD_AUTH_BASE_URL:-}
      GHARD_AUTH_CLIENT_ID: ${GHARD_AUTH_CLIENT_ID:-}
      GHARD_AUTH_CLIENT_SECRET: ${GHARD_AUTH_CLIENT_SECRET:-}
      GHARD_AUTH_REDIRECT_URI: ${GHARD_AUTH_REDIRECT_URI:-}
      GHARD_AUTH_WEBHOOK_SECRET: ${GHARD_AUTH_WEBHOOK_SECRET:-}
      GHARD_AUTH_ALLOWLIST: ${GHARD_AUTH_ALLOWLIST:-}
      # прочие настройки: офлайн-мультипликатор, периоды пробов, Synapse
      GHARD_OFFLINE_MULTIPLIER: ${GHARD_OFFLINE_MULTIPLIER:-3}
      GHARD_SHARE_INTERVAL: ${GHARD_SHARE_INTERVAL:-60}
      GHARD_HEALTH_INTERVAL: ${GHARD_HEALTH_INTERVAL:-30}
      GHARD_HEALTH_TIMEOUT: ${GHARD_HEALTH_TIMEOUT:-5}
      GHARD_SYNAPSE_URL: ${GHARD_SYNAPSE_URL:-}
      GHARD_SYNAPSE_API_KEY: ${GHARD_SYNAPSE_API_KEY:-}
      GHARD_SYNAPSE_DEFAULT_SOURCE: ${GHARD_SYNAPSE_DEFAULT_SOURCE:-hard-panel}
      GHARD_SYNAPSE_TIMEOUT: ${GHARD_SYNAPSE_TIMEOUT:-10}
    volumes:
      - panel-data:/data
    restart: unless-stopped

volumes:
  panel-data: