• DarkSirrush@lemmy.ca
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      1 day ago

      I can share my traefik setup - note I am doing this on my phone at work, so I might miss something

      compose.yaml
      
          labels:
            - "traefik.enable=true"
            - "traefik.http.routers.traefik.middlewares=authwares@file"
      
        GNU nano 7.2                      /config/traefik/dynamic/middlewares.yaml
      http:
        middlewares:
      
          limit:
            buffering:
              memRequestBodyBytes: 5000000000
              memResponseBodyBytes: 5000000000
              maxRequestBodyBytes: 5000000000
              maxResponseBodyBytes: 5000000000
      
          authwares:
            chain:
              middlewares:
                - default-headers
                - authelia
                - limit
      
          default-headers:
            headers:
              accessControlAllowHeaders: "content-type,authorization"
              accessControlAllowMethods:
                - GET
                - OPTIONS
                - PUT
                - POST
                - DELETE
              frameDeny: true
              accessControlAllowOriginList: "*"
              accessControlMaxAge: 100
              addVaryHeader: true
              browserXssFilter: true
              contentTypeNosniff: true
              forceSTSHeader: true
              stsIncludeSubdomains: true
              stsPreload: true
              stsSeconds: 15552000
              customFrameOptionsValue: SAMEORIGIN
              referrerPolicy: "strict-origin-when-cross-origin"
              customRequestHeaders:
                X-Forwarded-Proto: https
              customResponseHeaders:
                X-Robots-Tag: "none,noarchive,nosnippet,notranslate,noimageindex"
                server: ""
                X-Forwarded-Proto: "https,wss"
              hostsProxyHeaders:
                - "X-Forwarded-Host"
      
          authelia:
            forwardAuth:
              address: http://auth/api/verify?rd=https%3A%2F%2Fauth.example.com%2F
              trustForwardHeader: true
              authResponseHeaders:
                - "Remote-User"
                - "Remote-Groups"
                - "Remote-Email"
                - "Remote-Name"
      
        GNU nano 7.2                            /config/traefik/traefik.yaml
      global:
        checkNewVersion: false
        sendAnonymousUsage: false
      
      entryPoints:
        web:
          address: :80
          proxyProtocol:
            insecure: false
            trustedIPs:
              - 172.32.0.0/16
              - 192.168.1.0/24
          forwardedHeaders:
            insecure: false
            trustedIPs:
              - 172.32.0.0/16
              - 192.168.1.0/24
          http:
            redirections:
              entryPoint:
                to: websecure
                scheme: https
                permanent: true
        websecure:
          address: :443
          proxyProtocol:
            insecure: false
            trustedIPs:
              - 172.32.0.0/16
              - 192.168.1.0/24
          forwardedHeaders:
            insecure: false
            trustedIPs:
              - 172.32.0.0/16
              - 192.168.1.0/24
          http:
            tls:
              options: modern@file
              certResolver: letsencrypt
              domains:
                - main: "example.com"
                  sans:
                    - "*.example.com"
      
        providers:
        docker:
          exposedByDefault: false
          network: compose_proxied
          allowEmptyServices: true
          endpoint: "http://socket:2375/"
          defaultRule: "Host(`{{ index .Labels \"com.docker.compose.service\"}}.example.com`)"
        file:
          directory: /config/dynamic
          watch: true
      
      api:
        insecure: false
        dashboard: true
      
      certificatesResolvers:
        letsencrypt:
          acme:
            email: acme@example.com
            storage: /certificates/acme.json
            dnsChallenge:
              provider: cloudflare
              resolvers:
                - "1.1.1.1:53"
                - "1.0.0.1:53"
      
      log:
        level: DEBUG
        filePath: /config/logs/traefik.log
        format: json
      accesslog:
        filepath: /config/logs/access.log
        bufferingSize: 100
        format: json