Files
automation/docker-stacks/khongisa.co.za/config/traefik/dynamic_config.yml
2026-04-11 09:51:19 +02:00

92 lines
2.0 KiB
YAML

http:
middlewares:
nexus-buffer:
buffering:
maxRequestBodyBytes: 0
memRequestBodyBytes: 2097152 # 2MB
crowdsec:
plugin:
crowdsec:
crowdsecAppsecBodyLimit: 0
badger:
plugin:
badger:
disableForwardAuth: true
redirect-to-https:
redirectScheme:
scheme: https
routers:
nexus-docker-router:
rule: "Host(`nexus.khongisa.co.za`) && PathPrefix(`/v2`)"
service: api-service # Or whichever service points to Pangolin port 3000/3001
entryPoints:
- websecure
middlewares:
- nexus-buffer
- badger
tls:
certResolver: letsencrypt
# HTTP to HTTPS redirect router
main-app-router-redirect:
rule: "Host(`khongisa.co.za`)"
service: next-service
entryPoints:
- web
middlewares:
- redirect-to-https
- badger
# Next.js router (handles everything except API and WebSocket paths)
next-router:
rule: "Host(`khongisa.co.za`) && !PathPrefix(`/api/v1`)"
service: next-service
entryPoints:
- websecure
middlewares:
- badger
tls:
certResolver: letsencrypt
# API router (handles /api/v1 paths)
api-router:
rule: "Host(`khongisa.co.za`) && PathPrefix(`/api/v1`)"
service: api-service
entryPoints:
- websecure
middlewares:
- badger
tls:
certResolver: letsencrypt
# WebSocket router
ws-router:
rule: "Host(`khongisa.co.za`)"
service: api-service
entryPoints:
- websecure
middlewares:
- badger
tls:
certResolver: letsencrypt
services:
next-service:
loadBalancer:
servers:
- url: "http://pangolin:3002" # Next.js server
api-service:
loadBalancer:
servers:
- url: "http://pangolin:3000" # API/WebSocket server
tcp:
serversTransports:
pp-transport-v1:
proxyProtocol:
version: 1
pp-transport-v2:
proxyProtocol:
version: 2