services: {{ service_name }}: image: docker.io/library/traefik:v3.2 {% if not swarm_enabled %} container_name: {{ container_name }} {% endif %} {% if ports_enabled %} ports: - "80:80" - "443:443" {% if traefik_dashboard_enabled %} - "8080:8080" # Dashboard (don't use in production) {% endif %} {% endif %} volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./config/:/etc/traefik/:ro - ./certs/:/var/traefik/certs/:rw {% if traefik_tls_enabled %} env_file: - ./.env. {% endif %} environment: - TZ={{ container_timezone }} {% if network_enabled %} networks: - {{ network_name }} {% endif %} {% if swarm_enabled %} {% if traefik_tls_enabled %} secrets: - {{ traefik_tls_acme_secret_name }} {% endif %} deploy: mode: {{ swarm_placement_mode }} {% if swarm_placement_mode == 'replicated' %} replicas: {{ swarm_replicas }} {% endif %} {% if swarm_placement_host %} placement: constraints: - {{ swarm_placement_host }} {% endif %} {% else %} restart: {{ restart_policy }} {% endif %} {% if swarm_enabled and traefik_tls_enabled %} secrets: {{ traefik_tls_acme_secret_name }}: external: true {% endif %} {% if network_enabled %} networks: {{ network_name }}: {% if network_external %} external: true {% else %} driver: bridge {% endif %} {% endif %}