Files
2026-06-30 10:47:37 +02:00

78 lines
1.9 KiB
Markdown

# Deployment
## Requirements
- Docker Engine with Docker Compose plugin.
- Backend services reachable from the Docker host or container by IP address and port.
- Backend services must terminate TLS and present valid SSL certificates for the expected client names.
## Configuration
Add or update a per-site file under `config/dynamic/` with the required hostnames and backend addresses:
```yaml
tcp:
routers:
example:
rule: "HostSNI(`example.org`)"
service: example
tls:
passthrough: true
services:
example:
loadBalancer:
servers:
- address: "127.0.0.1:8443"
```
This deployment uses host networking so Traefik can reach services bound to host loopback addresses such as `127.0.0.1:8443`.
HTTP traffic is routed separately with HTTP `Host(...)` rules on port `80`. Configure the HTTP service in the same per-site file to point at the local backend port that should handle redirects and ACME challenge paths.
Keep each site's HTTP and TCP routers in the same dynamic file, for example `config/dynamic/lab-younerd.yml` or `config/dynamic/azionelab.yml`.
The `./config` directory is the host-based configuration volume. It is mounted read-only into the container:
```yaml
volumes:
- ./config:/etc/traefik:ro
```
## Ports
- Host `80/tcp`: public HTTP entrypoint handled directly by Traefik through host networking.
- Host `443/tcp`: public TCP TLS passthrough entrypoint handled directly by Traefik through host networking.
- Host `8082/tcp`: Traefik ping entrypoint for the container healthcheck; restrict this port with host firewall rules if needed.
## Deploy
Validate the Compose configuration:
```bash
docker compose config
```
Start the stack:
```bash
docker compose up -d
```
Check status:
```bash
docker compose ps
docker compose logs traefik
```
## Rollback
Stop the stack:
```bash
docker compose down
```
Then revert the deployment commit or restore the previous load-balancer configuration.