mapletree/traefik/docker-compose.yml
2026-01-26 16:03:22 +00:00

67 lines
1.8 KiB
YAML

services:
traefik:
image: traefik:latest
container_name: traefik
cpus: 1.0
mem_limit: "1024m"
mem_reservation: "128m"
restart: always
ports:
- "80:80" # HTTP
- "443:443" # HTTPS
- "888:8080" # Traefik Dashboard (optional, password-protect in production!)
command:
- "--api.dashboard=true"
- "--api.insecure=true" # Remove or secure in prod
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--providers.docker.network=web,request"
- "--providers.file.directory=/etc/traefik/dynamic"
- "--providers.file.watch=true"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
- "--certificatesresolvers.myresolver.acme.email=admin@mapletree.email"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "./letsencrypt:/letsencrypt"
- "./dynamic:/etc/traefik/dynamic"
networks:
- web
- request
- music
- media
- jellyfin
- syncthing
- guac_external
- komodo_external
- ansible_external
- dns_external
- homepage_external
networks:
web:
external: true
request:
external: true
music:
external: true
media:
external: true
activepieces_proxy:
external: true
jellyfin:
external: true
syncthing:
external: true
guac_external:
external: true
komodo_external:
external: true
ansible_external:
external: true
dns_external:
external: true
homepage_external:
external: true