Traefik¶
Traefik is used as my reverse proxy.
Installation¶
Default Port: 80
Config¶
All internal URLs use an l sub domain so that only one certificate is needed from letsencrypt. E.g. https://app.l.nicholaswilde.io/
Note
Paths in config file should be absolute.
App¶
Tip
Use the staging value of caServer during testing.
homelab/pve/traefik/traefik.yaml
Service¶
Update EnvironmentFile and ExecStart to point to your homelab directories.
/etc/systemd/system/traefik.service
Enable service
Usage¶
-
Create new config for app
-
Edit config file.
Update
http.routers.<app_name>.ruleandservices.<app_name>.loadBalancer.servers.url[0] -
Restart traefik
- Test URL in browser.
-
Comment out middleware in config file.
homelab/pve/traefik/conf.d/mcp-server.yaml
--- http: #region routers routers: mcp-server: entryPoints: - "websecure" rule: "Host(`mcp-server.l.nicholaswilde.io`)" middlewares: - default-headers@file - https-redirectscheme@file tls: {} service: mcp-server #endregion #region services services: mcp-server: loadBalancer: servers: - url: "http://192.168.2.177:8080" passHostHeader: true #endregion # middlewares: # https-redirectscheme: # redirectScheme: # scheme: https # permanent: true # default-headers: # headers: # frameDeny: true # browserXssFilter: true # contentTypeNosniff: true # forceSTSHeader: true # stsIncludeSubdomains: true # stsPreload: true # stsSeconds: 15552000 # customFrameOptionsValue: SAMEORIGIN # customRequestHeaders: # X-Forwarded-Proto: https # # default-whitelist: # ipAllowList: # sourceRange: # - "10.0.0.0/8" # - "192.168.0.0/16" # - "172.16.0.0/12" # # secured: # chain: # middlewares: # - default-whitelist # - default-headers -
Restart traefik
-
Test URL
-
Remove middleware or uncomment middleware
homelab/pve/traefik/conf.d/mcp-server.yaml
--- http: #region routers routers: mcp-server: entryPoints: - "websecure" rule: "Host(`mcp-server.l.nicholaswilde.io`)" middlewares: - default-headers@file - https-redirectscheme@file tls: {} service: mcp-server #endregion #region services services: mcp-server: loadBalancer: servers: - url: "http://192.168.2.177:8080" passHostHeader: true #endregion -
Restart traefik