# Traefik dynamic routing config — generated by Ansible # Do not edit manually; re-run ansible-playbook deploy.yml http: routers: traefik-dashboard: rule: "Host(`{{ domain_traefik }}`)" entrypoints: [websecure] tls: certresolver: letsencrypt service: api@internal middlewares: [traefik-auth] vaultwarden: rule: "Host(`{{ domain_vault }}`)" entrypoints: [websecure] tls: certresolver: letsencrypt service: vaultwarden forgejo: rule: "Host(`{{ domain_git }}`)" entrypoints: [websecure] tls: certresolver: letsencrypt service: forgejo plane-api: rule: "Host(`{{ domain_plane }}`) && (PathPrefix(`/api/`) || PathPrefix(`/auth/`))" entrypoints: [websecure] tls: certresolver: letsencrypt service: plane-api plane: rule: "Host(`{{ domain_plane }}`)" entrypoints: [websecure] tls: certresolver: letsencrypt service: plane-web syncthing: rule: "Host(`{{ domain_sync }}`)" entrypoints: [websecure] tls: certresolver: letsencrypt service: syncthing middlewares: [syncthing-auth] grafana: rule: "Host(`{{ domain_dashboard }}`)" entrypoints: [websecure] tls: certresolver: letsencrypt service: grafana services: vaultwarden: loadBalancer: servers: - url: "http://vaultwarden:80" forgejo: loadBalancer: servers: - url: "http://forgejo:3000" plane-api: loadBalancer: servers: - url: "http://plane-api:8000" plane-web: loadBalancer: servers: - url: "http://plane-web:3000" syncthing: loadBalancer: servers: - url: "http://syncthing:8384" grafana: loadBalancer: servers: - url: "http://grafana:3000" middlewares: traefik-auth: basicAuth: users: - "{{ traefik_dashboard_htpasswd }}" syncthing-auth: basicAuth: users: - "{{ syncthing_basic_auth_htpasswd }}"