apiVersion: traefik.io/v1alpha1 kind: Middleware metadata: name: headplane-prefix namespace: headscale spec: addPrefix: prefix: "/admin" --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: headscale-prod namespace: headscale spec: entryPoints: - websecure routes: - match: Host(`hs.forust.xyz`) kind: Rule middlewares: services: - name: headscale-server-external port: 8080 - match: Host(`hs.forust.xyz`) && PathPrefix(`/admin`) kind: Rule middlewares: services: - name: headscale-ui-external port: 80 - match: Host(`hs.forust.xyz`) && PathPrefix(`/metrics`) kind: Rule middlewares: services: - name: headscale-server-external port: 9090 tls: certResolver: letsencrypt --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: headplane-prod namespace: headscale spec: entryPoints: - websecure routes: - match: Host(`hp.forust.xyz`) kind: Rule middlewares: - name: headplane-prefix services: - name: headplane-external port: 3000 - match: Host(`hp.forust.xyz`) && PathPrefix(`/admin`) kind: Rule services: - name: headplane-external port: 3000 tls: certResolver: letsencrypt --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: headscale-local namespace: headscale spec: entryPoints: - websecure routes: - match: Host(`hs.workstation.internal`) || Host(`hs.gigaforust.internal`) kind: Rule services: - name: headscale-server-external port: 8080 - match: (Host(`hs.workstation.internal`) || Host(`hs.gigaforust.internal`)) && PathPrefix(`/admin`) kind: Rule services: - name: headscale-ui-external port: 80 - match: (Host(`hs.workstation.internal`) || Host(`hs.gigaforust.internal`)) && PathPrefix(`/metrics`) kind: Rule services: - name: headscale-server-external port: 9090 --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: headplane-local namespace: headscale spec: routes: - match: Host(`hp.workstation.internal`) || Host(`hp.gigaforust.internal`) kind: Rule middlewares: - name: headplane-prefix services: - name: headplane-external port: 3000 - match: (Host(`hp.workstation.internal`) || Host(`hp.gigaforust.internal`)) && PathPrefix(`/admin`) kind: Rule services: - name: headplane-external port: 3000