http:
  routers:
    downloads:
      rule: Host(`files.antigol.ru`)
      entryPoints:
        - websecure
      service: downloads
      tls:
        certResolver: letsencrypt

    frontend:
      rule: Host(`antigol.ru`)
      entryPoints:
        - websecure
      service: frontend
      tls:
        certResolver: letsencrypt

    backend:
      rule: Host(`api.antigol.ru`)
      entryPoints:
        - websecure
      service: backend
      tls:
        certResolver: letsencrypt

    chat:
      rule: Host(`chat.antigol.ru`)
      entryPoints:
        - websecure
      service: chat
      tls:
        certResolver: letsencrypt

    adminer:
      rule: Host(`db.antigol.ru`)
      entryPoints:
        - websecure
      service: adminer
      tls:
        certResolver: letsencrypt

    dockmon:
      rule: Host(`monitor.antigol.ru`)
      entryPoints:
        - websecure
      service: dockmon
      tls:
        certResolver: letsencrypt

    traefik-dashboard:
      rule: Host(`traefik.antigol.ru`)
      entryPoints:
        - websecure
      service: api@internal
      middlewares:
        - dashboard-auth
        - dashboard-security-headers
      tls:
        certResolver: letsencrypt

  services:
    downloads:
      loadBalancer:
        servers:
          - url: http://downloads:8080

    frontend:
      loadBalancer:
        servers:
          - url: http://frontend:3000

    backend:
      loadBalancer:
        servers:
          - url: http://backend:4000

    chat:
      loadBalancer:
        servers:
          - url: http://chat-service:4050

    adminer:
      loadBalancer:
        servers:
          - url: http://adminer:8080

    dockmon:
      loadBalancer:
        servers:
          - url: http://dockmon:80

  middlewares:
    dashboard-auth:
      basicAuth:
        usersFile: /etc/traefik/secrets/dashboard-users
    dashboard-security-headers:
      headers:
        contentTypeNosniff: true
        browserXssFilter: true
        frameDeny: true
        referrerPolicy: "no-referrer"
