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 # domains: # - main: "furyhawk.lol" # sans: # - "*.furyhawk.lol" web-secure-router: rule: "Host(`furyhawk.lol`, `www.furyhawk.lol`, `bai.furyhawk.lol`) || PathPrefix(`/bai`)" entryPoints: - web-secure middlewares: - csrf - add-bai service: streamlit_bai_app tls: # https://docs.traefik.io/master/routing/routers/#certresolver certResolver: letsencrypt # domains: # - main: "furyhawk.lol" # sans: # - "*.furyhawk.lol" fin-router: rule: "Host(`fin.furyhawk.lol`)" entryPoints: - web-secure middlewares: - csrf - add-fin service: streamlit_fin_app tls: # https://docs.traefik.io/master/routing/routers/#certresolver certResolver: letsencrypt # domains: # - main: "furyhawk.lol" # sans: # - "*.furyhawk.lol" 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: "usersfile" csrf: # https://doc.traefik.io/traefik/middlewares/http/headers/#hostsproxyheaders # https://docs.djangoproject.com/en/dev/ref/csrf/#ajax headers: hostsProxyHeaders: ["X-CSRFToken"] add-bai: addPrefix: prefix: "/bai" add-fin: addPrefix: prefix: "/fin" 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: osrm_service: loadBalancer: servers: - url: http://osrm_backend:5000 streamlit_bai_app: loadBalancer: servers: - url: http://streamlit_bai_app:8502/bai streamlit_fin_app: loadBalancer: servers: - url: http://streamlit_fin_app:8501/fin 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"