feat: add http challenge routing

This commit is contained in:
Alfredo Di Stasio
2026-06-30 10:09:35 +02:00
parent b5beb27623
commit f3759e76ea
11 changed files with 78 additions and 9 deletions
+9 -2
View File
@@ -5,8 +5,8 @@ This project runs Traefik Proxy as a Dockerized TCP load balancer.
## Components
- `compose.yaml`: defines the Traefik container, published port, host-based configuration volume, container hardening, and healthcheck.
- `config/traefik.yml`: static Traefik configuration for entrypoints, file provider, ping, and logging.
- `config/dynamic/tcp-services.yml`: dynamic TCP router and backend load-balancer service.
- `config/traefik.yml`: static Traefik configuration for HTTP, TCP TLS, ping, file provider, and logging.
- `config/dynamic/tcp-services.yml`: dynamic HTTP challenge routers, TCP routers, and backend load-balancer services.
## Data flow
@@ -16,6 +16,13 @@ This project runs Traefik Proxy as a Dockerized TCP load balancer.
4. Traefik forwards the unchanged TCP stream to one configured backend IP address and port.
5. The selected backend terminates TLS and presents its own SSL certificate.
For HTTP-01 certificate validation:
1. Let's Encrypt opens an HTTP connection to the Docker host on `80/tcp`.
2. Docker forwards the request to Traefik on container port `8080/tcp`.
3. Traefik matches the HTTP `Host(...)` and `PathPrefix('/.well-known/acme-challenge/')` router.
4. Traefik forwards the request to the configured local challenge responder.
## Persistence
Traefik configuration is stored in the host `./config` directory and mounted read-only at `/etc/traefik`.