Files
docker-services/templates/compose/traefik.yml.j2

59 lines
1.8 KiB
Django/Jinja

networks:
{% if docker_services_external_networks %}
traefik:
external: true
{% else %}
traefik:
name: traefik
{% endif %}
volumes:
{% if docker_services_external_volumes %}
traefik__etc_traefik:
external: true
traefik__letsencrypt:
external: true
{% else %}
traefik__etc_traefik:
name: traefik__etc_traefik
traefik__letsencrypt:
name: traefik__letsencrypt
{% endif %}
services:
traefik:
image: traefik:latest
container_name: traefik
restart: 'unless-stopped'
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- traefik__etc_traefik:/etc/traefik:ro
- traefik__letsencrypt:/letsencrypt
command:
- "--providers.providersthrottleduration=100"
labels:
traefik.enable: true
traefik.http.routers.traefik.rule: Host(`{{ traefik_domain }}`)
traefik.http.routers.traefik.entrypoints: websecure
traefik.http.routers.traefik.service: api@internal
traefik.http.routers.traefik.tls: true
traefik.http.routers.traefik.tls.certresolver: letsencrypt
traefik.http.routers.dashboard.rule: Host(`{{ traefik_domain }}`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))
{% if traefik_ipwhitelist is defined %}
traefik.http.middlewares.clientips.ipwhitelist.sourcerange: {{ traefik_ipwhitelist }}
traefik.http.routers.traefik.middlewares: "clientips@docker"
{% endif %}
traefik.http.middlewares.auth.basicauth.users: "ludal:$$apr1$$N3vklVTY$$zrq2kwkaVdynGlakyb4J7."
traefik.http.middlewares.auth.basicauth.realm: {{ traefik_domain }} - restricted access
com.centurylinklabs.watchtower.enable: {{ traefik_watchtower_enable | default('true') }}
logging:
driver: syslog
options:
tag: docker_traefik
networks:
- traefik