Deleted 7 empty/meaningless files with no useful content. Flattened 7 redundant nested directory structures (VPS/VPS, Cooking/Cooking, Gaming/Game, Mobile/Phone, Obsidian/Obsidian Theme, PARA/PARA Starter Kit, Resume/resume) to simplify navigation and reduce path complexity. (vault changes by Claude Code)
1.8 KiB
Executable File
1.8 KiB
Executable File
services:
traefik:
image: traefik:v3.4
container_name: traefik
restart: unless-stopped
security_opt:
- no-new-privileges:true
networks:
- proxy
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./certs:/certs
- ./dynamic:/dynamic
command:
# Entrypoints
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--entrypoints.websecure.http.tls=true"
# Providers
- "--providers.file.filename=/dynamic/tls.yaml"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--providers.docker.network=proxy"
# API & Dashboard
- "--api.dashboard=true"
- "--api.insecure=false"
# Logs
- "--log.level=INFO"
- "--accesslog=true"
- "--metrics.prometheus=true"
# Let's Encrypt (ACME)
- "--certificatesresolvers.letsencrypt.acme.email=zhiqiang@windy.me"
- "--certificatesresolvers.letsencrypt.acme.storage=/certs/acme.json"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
labels:
- traefik.enable=true
- traefik.http.routers.dashboard.rule=Host(`us4.wsvc.info`)
- traefik.http.routers.dashboard.entrypoints=websecure,web
- traefik.http.routers.dashboard.service=api@internal
- traefik.http.routers.dashboard.tls.certresolver=letsencrypt
- "traefik.http.middlewares.dashboard-auth.basicauth.users=admin:$$apr1$$aBNLDToX$$nIKWMN41tGMBhtdSaA/Ih/"
- traefik.http.routers.dashboard.middlewares=dashboard-auth@docker,redirect-to-https@file
networks:
proxy:
name: proxy
external: true
S3cureP@ssw0rd!