Why Traefik
Traefik auto-discovers services from Docker, Kubernetes, Consul, and more. Add a container — Traefik routes to it. Remove it — Traefik updates. No config reload needed.
Docker Compose Setup
services:
traefik:
image: traefik:v3.0
command:
- --api.insecure=true
- --providers.docker
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
- --certificatesresolvers.le.acme.email=admin@example.com
- --certificatesresolvers.le.acme.storage=/acme.json
- --certificatesresolvers.le.acme.httpchallenge.entrypoint=web
ports:
- 80:80
- 443:443
- 8080:8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./acme.json:/acme.json
myapp:
image: myorg/myapp:latest
labels:
- traefik.http.routers.myapp.rule=Host(`app.example.com`)
- traefik.http.routers.myapp.tls.certresolver=le
- traefik.http.services.myapp.loadbalancer.server.port=8080
Just add labels to your container — Traefik handles routing and HTTPS.
Kubernetes IngressRoute
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: myapp
spec:
entryPoints:
- websecure
routes:
- match: Host(`app.example.com`) && PathPrefix(`/api`)
kind: Rule
services:
- name: api-service
port: 8080
middlewares:
- name: rate-limit
tls:
certResolver: le
Middleware
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: rate-limit
spec:
rateLimit:
average: 100
burst: 50
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: auth
spec:
basicAuth:
secret: auth-secret
Key Features
- Auto-discovery — Docker, Kubernetes, Consul, etcd
- Automatic HTTPS — Let's Encrypt built-in
- Dashboard — web UI at port 8080
- Middleware — rate limiting, auth, headers, compression
- TCP/UDP — not just HTTP
- Metrics — Prometheus, Datadog, InfluxDB
Resources
Need to extract proxy configs, routing rules, or traffic data? Check out my Apify tools or email spinov001@gmail.com for custom solutions.
Top comments (0)