# Traefik Static Configuration
# Copy to /opt/stacks/traefik/traefik.yml

global:
  checkNewVersion: true
  sendAnonymousUsage: false

api:
  dashboard: true
  insecure: false  # Dashboard accessible via Traefik route with Authelia

entryPoints:
  web:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: websecure
          scheme: https
  
  websecure:
    address: ":443"
    http:
      tls:
        certResolver: letsencrypt

certificatesResolvers:
  letsencrypt:
    acme:
      email: ${DEFAULT_EMAIL}  # Your email for Let's Encrypt notifications
      caServer: https://acme-v02.api.letsencrypt.org/directory  # Use staging for testing
      storage: /letsencrypt/acme.json
      # DNS challenge - For wildcard certificates (*.yourdomain.duckdns.org)
      # Works with DuckDNS - requires DUCKDNS_TOKEN in environment
      dnsChallenge:
        provider: duckdns

providers:
  docker:
    endpoint: "unix:///var/run/docker.sock"
    exposedByDefault: false  # Only expose services with traefik.enable=true
    network: traefik-network
  
  file:
    directory: /dynamic
    watch: true

log:
  level: DEBUG  # DEBUG, INFO, WARN, ERROR
  filePath: /var/log/traefik/traefik.log

accessLog:
  filePath: /var/log/traefik/access.log
  bufferingSize: 100
