Skip to content

Commit b42b316

Browse files
committed
Refactor Traefik routers to define individual rules for each domain with TLS configuration
1 parent f3f78f4 commit b42b316

File tree

1 file changed

+177
-6
lines changed

1 file changed

+177
-6
lines changed

ingress/traefik/dynamic.yml

Lines changed: 177 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,183 @@ http:
1313
findtime: 10m
1414
maxretry: "4"
1515
statuscode: 400,401,403-499
16+
1617
routers:
17-
# HTTPS routers for all domains
18-
backend:
19-
rule: "Host(`authentik.vps.kubespaces.cloud`) || Host(`codimd.vps.kubespaces.cloud`) || Host(`todo.vps.kubespaces.cloud`) || Host(`argocd.vps.kubespaces.cloud`) || Host(`coder.vps.kubespaces.cloud`) || Host(`chat.vps.kubespaces.cloud`) || Host(`talks.vps.kubespaces.cloud`) || Host(`next.vps.kubespaces.cloud`) || Host(`wiki.vps.kubespaces.cloud`) || Host(`claw.vps.kubespaces.cloud`) || Host(`supabase.vps.kubespaces.cloud`) || Host(`auth.vps.kubespaces.cloud`) || Host(`actual.vps.kubespaces.cloud`) || Host(`nginx.vps.kubespaces.cloud`) || Host(`registry.vps.kubespaces.cloud`) || Host(`grafana.vps.kubespaces.cloud`) || Host(`dash.vps.kubespaces.cloud`) || Host(`n8n.vps.kubespaces.cloud`) || Host(`s3.vps.kubespaces.cloud`) || Host(`code.vps.kubespaces.cloud`) || Host(`minecraft.vps.kubespaces.cloud`) || Host(`echo.vps.kubespaces.cloud`) || Host(`webhook.vps.kubespaces.cloud`) || Host(`helix.vps.kubespaces.cloud`) || Host(`rancher.vps.kubespaces.cloud`)"
20-
entryPoints:
21-
- websecure
18+
# Each domain gets its own router so Traefik can request
19+
# individual certs dynamically when new domains are added.
20+
# To add a new domain: copy any router block, change the name and Host.
21+
authentik:
22+
rule: "Host(`authentik.vps.kubespaces.cloud`)"
23+
entryPoints: [websecure]
24+
service: backend-service
25+
tls:
26+
certResolver: letsencrypt
27+
28+
codimd:
29+
rule: "Host(`codimd.vps.kubespaces.cloud`)"
30+
entryPoints: [websecure]
31+
service: backend-service
32+
tls:
33+
certResolver: letsencrypt
34+
35+
todo:
36+
rule: "Host(`todo.vps.kubespaces.cloud`)"
37+
entryPoints: [websecure]
38+
service: backend-service
39+
tls:
40+
certResolver: letsencrypt
41+
42+
argocd:
43+
rule: "Host(`argocd.vps.kubespaces.cloud`)"
44+
entryPoints: [websecure]
45+
service: backend-service
46+
tls:
47+
certResolver: letsencrypt
48+
49+
coder:
50+
rule: "Host(`coder.vps.kubespaces.cloud`)"
51+
entryPoints: [websecure]
52+
service: backend-service
53+
tls:
54+
certResolver: letsencrypt
55+
56+
chat:
57+
rule: "Host(`chat.vps.kubespaces.cloud`)"
58+
entryPoints: [websecure]
59+
service: backend-service
60+
tls:
61+
certResolver: letsencrypt
62+
63+
talks:
64+
rule: "Host(`talks.vps.kubespaces.cloud`)"
65+
entryPoints: [websecure]
66+
service: backend-service
67+
tls:
68+
certResolver: letsencrypt
69+
70+
next:
71+
rule: "Host(`next.vps.kubespaces.cloud`)"
72+
entryPoints: [websecure]
73+
service: backend-service
74+
tls:
75+
certResolver: letsencrypt
76+
77+
wiki:
78+
rule: "Host(`wiki.vps.kubespaces.cloud`)"
79+
entryPoints: [websecure]
80+
service: backend-service
81+
tls:
82+
certResolver: letsencrypt
83+
84+
claw:
85+
rule: "Host(`claw.vps.kubespaces.cloud`)"
86+
entryPoints: [websecure]
87+
service: backend-service
88+
tls:
89+
certResolver: letsencrypt
90+
91+
supabase:
92+
rule: "Host(`supabase.vps.kubespaces.cloud`)"
93+
entryPoints: [websecure]
94+
service: backend-service
95+
tls:
96+
certResolver: letsencrypt
97+
98+
auth:
99+
rule: "Host(`auth.vps.kubespaces.cloud`)"
100+
entryPoints: [websecure]
101+
service: backend-service
102+
tls:
103+
certResolver: letsencrypt
104+
105+
actual:
106+
rule: "Host(`actual.vps.kubespaces.cloud`)"
107+
entryPoints: [websecure]
108+
service: backend-service
109+
tls:
110+
certResolver: letsencrypt
111+
112+
nginx:
113+
rule: "Host(`nginx.vps.kubespaces.cloud`)"
114+
entryPoints: [websecure]
115+
service: backend-service
116+
tls:
117+
certResolver: letsencrypt
118+
119+
registry:
120+
rule: "Host(`registry.vps.kubespaces.cloud`)"
121+
entryPoints: [websecure]
122+
service: backend-service
123+
tls:
124+
certResolver: letsencrypt
125+
126+
grafana:
127+
rule: "Host(`grafana.vps.kubespaces.cloud`)"
128+
entryPoints: [websecure]
129+
service: backend-service
130+
tls:
131+
certResolver: letsencrypt
132+
133+
dash:
134+
rule: "Host(`dash.vps.kubespaces.cloud`)"
135+
136+
entryPoints: [websecure]
137+
service: backend-service
138+
tls:
139+
certResolver: letsencrypt
140+
141+
n8n:
142+
rule: "Host(`n8n.vps.kubespaces.cloud`)"
143+
entryPoints: [websecure]
144+
service: backend-service
145+
tls:
146+
certResolver: letsencrypt
147+
148+
s3:
149+
rule: "Host(`s3.vps.kubespaces.cloud`)"
150+
entryPoints: [websecure]
151+
service: backend-service
152+
tls:
153+
certResolver: letsencrypt
154+
155+
code:
156+
rule: "Host(`code.vps.kubespaces.cloud`)"
157+
entryPoints: [websecure]
158+
service: backend-service
159+
tls:
160+
certResolver: letsencrypt
161+
162+
minecraft:
163+
rule: "Host(`minecraft.vps.kubespaces.cloud`)"
164+
entryPoints: [websecure]
165+
service: backend-service
166+
tls:
167+
certResolver: letsencrypt
168+
169+
echo:
170+
rule: "Host(`echo.vps.kubespaces.cloud`)"
171+
entryPoints: [websecure]
172+
service: backend-service
173+
tls:
174+
certResolver: letsencrypt
175+
176+
webhook:
177+
rule: "Host(`webhook.vps.kubespaces.cloud`)"
178+
entryPoints: [websecure]
179+
service: backend-service
180+
tls:
181+
certResolver: letsencrypt
182+
183+
helix:
184+
rule: "Host(`helix.vps.kubespaces.cloud`)"
185+
entryPoints: [websecure]
186+
service: backend-service
187+
tls:
188+
certResolver: letsencrypt
189+
190+
rancher:
191+
rule: "Host(`rancher.vps.kubespaces.cloud`)"
192+
entryPoints: [websecure]
22193
service: backend-service
23194
tls:
24195
certResolver: letsencrypt
@@ -28,4 +199,4 @@ http:
28199
backend-service:
29200
loadBalancer:
30201
servers:
31-
- url: "http://host.docker.internal:30963"
202+
- url: "http://host.docker.internal:30963"

0 commit comments

Comments
 (0)