services:
  ddns-updater:
    dns:
    - 1.1.1.1
    environment:
      USER_UID: "${HOST_UID:?Must specify HOST_UID}"
      USER_GID: "${HOST_GID:-${HOST_UID}}"

      ### Configuration
      # DATADIR: "/updater/data"
      # CONFIG_FILEPATH: "/updater/data/config.json"
      # CONFIG: ""
      # PERIOD: "5m"
      
      # UPDATE_COOLDOWN_PERIOD: "5m"
      # PUBLICIP_FETCHERS: "all"
      # PUBLICIP_HTTP_PROVIDERS: "all"
      # PUBLICIPV4_HTTP_PROVIDERS: "all"
      # PUBLICIPV6_HTTP_PROVIDERS: "all"
      # PUBLICIP_DNS_PROVIDERS: "all"
      # PUBLICIP_DNS_TIMEOUT: "3s"
      # HTTP_TIMEOUT: "10s"

      # RESOLVER_ADDRESS: ""
      # RESOLVER_TIMEOUT: "5s"

      ### Web UI
      # SERVER_ENABLED: "yes"
      # LISTENING_ADDRESS: ":8000"
      # ROOT_URL: "/"

      ### Backup
      # BACKUP_PERIOD: "0"
      # BACKUP_DIRECTORY: "/updater/data"

      ### Other
      # LOG_LEVEL: "info"
      # LOG_CALLER: "hidden"

      ### SHOUTRRR
      # SHOUTRRR_ADDRESSES: ""
      # SHOUTRRR_DEFAULT_TITLE: "DDNS Updater"
      
      ### Health Check
      # HEALTH_SERVER_ADDRESS: "127.0.0.1:9999"
      # HEALTH_HEALTHCHECKSIO_BASE_URL: "https://hc-ping.com"
      # HEALTH_HEALTHCHECKSIO_UUID: ""
    labels:
      traefik.http.routers.ddns-updater.rule: Host(`ddns.${ROOT_DOMAIN}`)
      traefik.http.routers.ddns-updater.middlewares: authentik_sysmgr@file

    volumes:
    #- dummy:/updater/data:ro
    - type: bind
      source: ${ROOT_FOLDER_HOST}/user-config/${APP_ID}/config.json
      target: /updater/data/config.json
      read_only: true