services: traefik: image: traefik:latest container_name: traefik restart: always {% if cert_mode == 'acme' %} environment: RFC2136_NAMESERVER: "{{ acme_dns_nameserver }}" RFC2136_TSIG_ALGORITHM: "{{ acme_tsig_algorithm }}" RFC2136_TSIG_KEY: "{{ acme_tsig_key }}" RFC2136_TSIG_SECRET: "{{ acme_tsig_secret }}" RFC2136_PROPAGATION_TIMEOUT: "{{ acme_propagation_timeout }}" RFC2136_POLLING_INTERVAL: "{{ acme_polling_interval }}" RFC2136_TTL: "{{ acme_ttl }}" {% endif %} ports: - "80:80" - "443:443" {% if enable_dashboard %} - "8080:8080" {% endif %} volumes: - {{ docker_volume_dir }}/traefik.yml:/traefik.yml:ro {% if cert_mode == 'acme' %} - {{ docker_volume_dir }}/letsencrypt:/letsencrypt {% endif %} {% if traefik_mode == 'dmz' %} - {{ docker_volume_dir }}/config:/config:ro {% endif %} {% if traefik_mode == 'backend' %} - /var/run/docker.sock:/var/run/docker.sock:ro {% endif %} networks: - {{ traefik_network }} networks: {{ traefik_network }}: name: {{ traefik_network }} external: true