log: level: DEBUG api: # Dashboard dashboard: true # https://docs.traefik.io/master/operations/api/#insecure # insecure: true entryPoints: web: # http address: ":80" http: # https://docs.traefik.io/routing/entrypoints/#entrypoint redirections: entryPoint: to: web-secure web-secure: # https address: ":443" # osrm: # address: ":5000" certificatesResolvers: letsencrypt: # https://docs.traefik.io/master/https/acme/#lets-encrypt acme: email: "furyx@hotmail.com" storage: /etc/traefik/acme/acme.json # https://docs.traefik.io/master/https/acme/#httpchallenge httpChallenge: entryPoint: web http: routers: dashboard: rule: "Host(`dashboard.furyhawk.lol`) && PathPrefix(`/api`, `/dashboard`)" entryPoints: - web-secure middlewares: - auth service: api@internal tls: # https://docs.traefik.io/master/routing/routers/#certresolver certResolver: letsencrypt portainer-router: rule: "Host(`portainer.furyhawk.lol`, `port.furyhawk.lol`)" entryPoints: - web-secure middlewares: - csrf service: portainer_service tls: # https://docs.traefik.io/master/routing/routers/#certresolver certResolver: letsencrypt edge-router: rule: "Host(`edge.furyhawk.lol`)" entryPoints: - web-secure middlewares: - csrf service: edge_service tls: # https://docs.traefik.io/master/routing/routers/#certresolver certResolver: letsencrypt forum-router: rule: "Host(`forum.furyhawk.lol`)" entryPoints: - web-secure middlewares: - csrf # - sslheader service: forum_server tls: # https://docs.traefik.io/master/routing/routers/#certresolver certResolver: letsencrypt heynote-router: rule: "Host(`note.furyhawk.lol`)" entryPoints: - web-secure middlewares: - csrf service: heynote_server tls: certResolver: letsencrypt # mqttx-router: # rule: "Host(`mqttx.furyhawk.lol`)" # entryPoints: # - web-secure # middlewares: # - csrf # service: mqttx-web # tls: # # https://docs.traefik.io/master/routing/routers/#certresolver # certResolver: letsencrypt bai-router: rule: "Host(`bai.furyhawk.lol`)" entryPoints: - web-secure middlewares: - csrf service: streamlit_bai_app tls: # https://docs.traefik.io/master/routing/routers/#certresolver certResolver: letsencrypt fin-router: rule: "Host(`fin.furyhawk.lol`)" entryPoints: - web-secure middlewares: - csrf service: streamlit_fin_app tls: # https://docs.traefik.io/master/routing/routers/#certresolver certResolver: letsencrypt info-router: rule: "Host(`furyhawk.lol`, `www.furyhawk.lol`, `info.furyhawk.lol`, `124c41.furyhawk.lol`)" entryPoints: - web-secure middlewares: - csrf - no-www service: site_server tls: # https://docs.traefik.io/master/routing/routers/#certresolver certResolver: letsencrypt resume-router: rule: "Host(`resume.furyhawk.lol`)" entryPoints: - web-secure # redirect to resume middlewares: - csrf - redirect-resume service: resume_server tls: # https://docs.traefik.io/master/routing/routers/#certresolver certResolver: letsencrypt blog-router: rule: "Host(`blog.furyhawk.lol`)" entryPoints: - web-secure # redirect to external blog middlewares: - redirect-blog service: blog tls: # https://docs.traefik.io/master/routing/routers/#certresolver certResolver: letsencrypt osrm-router: rule: "Host(`osrm.furyhawk.lol`)" entryPoints: - "web-secure" # - "osrm" middlewares: - csrf service: osrm_service tls: # https://docs.traefik.io/master/routing/routers/#certresolver certResolver: letsencrypt # domains: # - main: "furyhawk.lol" # sans: # - "*.furyhawk.lol" middlewares: auth: basicAuth: usersFile: "/etc/traefik/usersfile" csrf: # https://doc.traefik.io/traefik/middlewares/http/headers/#hostsproxyheaders # https://docs.djangoproject.com/en/dev/ref/csrf/#ajax headers: hostsProxyHeaders: ["X-CSRFToken"] sslheader: # https://docs.traefik.io/master/middlewares/headers/ headers: sslProxyHeaders: X-Forwarded-Proto: "https" sslRedirect: true no-www: redirectRegex: regex: "^https?://www\\.(.+)" replacement: https://${1} permanent: true # redirect to resume redirect-resume: redirectRegex: regex: "^https://resume.furyhawk.lol/(.*)" replacement: "https://info.furyhawk.lol/resume/${1}" permanent: true redirect-blog: # https://docs.traefik.io/master/middlewares/redirectscheme/ redirectregex: regex: "^https://blog.furyhawk.lol/(.*)" replacement: "https://furyhawk.github.io/124c41/${1}" permanent: true services: portainer_service: loadBalancer: servers: - url: http://portainer:9000 edge_service: loadBalancer: servers: - url: http://portainer:8000 osrm_service: loadBalancer: servers: - url: http://osrm_backend:5000 forum_server: loadBalancer: servers: - url: http://flarum-web:80 heynote_server: loadBalancer: servers: - url: http://heynote_app:5173 mqttx-web: loadBalancer: servers: - url: http://mqttx_web:80 streamlit_bai_app: loadBalancer: servers: - url: http://streamlit_bai_app:8502 streamlit_fin_app: loadBalancer: servers: - url: http://streamlit_fin_app:8501 site_server: loadBalancer: servers: - url: http://site_server:80 resume_server: loadBalancer: servers: - url: http://site_server:80 blog: loadBalancer: servers: - url: https://furyhawk.github.io/124c41/ providers: # https://docs.traefik.io/master/providers/file/ file: filename: /etc/traefik/traefik.yml watch: true docker: network: web exposedByDefault: false endpoint: "unix:///var/run/docker.sock"