initial-traefik
Initialize and configure Traefik reverse proxy with Docker. Install Traefik, configure Docker Compose, set up service routing via path prefix or host-based r...
技能说明
name: initial-traefik description: Initialize and configure Traefik reverse proxy with Docker. Install Traefik, configure Docker Compose, set up service routing via path prefix or host-based routing, enable features like dashboard metrics logging tracing, configure Dashboard access via nip.io or path prefix
Initial Traefik
Initialize and configure Traefik v3 reverse proxy with Docker Compose for service routing and load balancing.
Quick Start
1. Create Configuration
mkdir -p ~/.docker/compose
cd ~/.docker/compose
2. Create docker-compose.yml
Use assets/docker-compose.yml as template. Key configuration:
services:
traefik:
image: traefik:v3.0
container_name: traefik
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik-dynamic.yml:/etc/traefik/dynamic.yml:ro
command:
- --api=true
- --api.dashboard=true
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --providers.file.directory=/etc/traefik
- --providers.file.watch=true
- --entrypoints.web.address=:80
- --accesslog=true
- --metrics.prometheus=true
3. Create Dynamic Configuration
Use assets/traefik-dynamic.yml as template for service routing.
4. Start Traefik
docker compose up -d
5. Connect Services to Network
for container in <service-names>; do
docker network connect compose_default $container
done
Routing Options
Option A: Path Prefix Routing (IP + Path)
Access services via http://<IP>/<service>:
http:
routers:
n8n:
rule: "PathPrefix(`/n8n`)"
service: n8n
entryPoints:
- web
middlewares:
- n8n-stripprefix
middlewares:
n8n-stripprefix:
stripPrefix:
prefixes:
- /n8n
services:
n8n:
loadBalancer:
servers:
- url: "http://n8n:5678"
Access: http://192.168.9.192/n8n
Option B: Host-Based Routing (.nip.io)
Access services via http://<service>.<IP>.nip.io:
http:
routers:
n8n:
rule: "Host(`n8n.192.168.9.192.nip.io`)"
service: n8n
entryPoints:
- web
services:
n8n:
loadBalancer:
servers:
- url: "http://n8n:5678"
Access: http://n8n.192.168.9.192.nip.io
Option C: Docker Labels
Configure routing directly in docker-compose.yml labels:
services:
traefik:
labels:
- "traefik.enable=true"
- "traefik.http.routers.dashboard.rule=Host(`traefik.192.168.9.192.nip.io`)"
- "traefik.http.routers.dashboard.service=api@internal"
- "traefik.http.routers.dashboard.entrypoints=web"
Enable Features
See references/features.md for complete feature list and configuration.
Common Tasks
Add New Service
-
Connect container to network:
docker network connect compose_default <container-name> -
Add router to
traefik-dynamic.yml:routers: myservice: rule: "PathPrefix(`/myservice`)" service: myservice entryPoints: - web middlewares: - myservice-stripprefix services: myservice: loadBalancer: servers: - url: "http://<container-name>:<port>"
Traefik auto-reloads configuration.
Check Status
docker logs traefik | grep -E "router|error"
docker exec traefik wget -q -O - http://localhost:8080/api/http/routers
Restart Traefik
docker restart traefik
References
- Features: See
references/features.mdfor all available features - Examples: See
references/examples.mdfor common configurations - Templates: See
assets/for configuration templates
Troubleshooting
- 404 errors: Check container is connected to
compose_defaultnetwork - Configuration not loading: Check
traefik-dynamic.ymlYAML syntax - Service not accessible: Verify container name and port in service configuration
- Dashboard not working: Ensure
--api.dashboard=trueis in command
如何使用「initial-traefik」?
- 打开小龙虾AI(Web 或 iOS App)
- 点击上方「立即使用」按钮,或在对话框中输入任务描述
- 小龙虾AI 会自动匹配并调用「initial-traefik」技能完成任务
- 结果即时呈现,支持继续对话优化