|
|
@@ -20,19 +20,20 @@ services:
|
|
|
{#
|
|
|
Port mappings (only in bridge mode or default network):
|
|
|
- HTTP/HTTPS (80/443) ports are only exposed when Traefik is disabled
|
|
|
- - Initial setup port 3000 is exposed during first-time setup
|
|
|
+ - Initial setup port 3000 is exposed during first-time setup (when not using Traefik)
|
|
|
- DNS and related ports (53, 853, 5443) are always exposed
|
|
|
- In host or macvlan mode, ports are bound directly to host network
|
|
|
+ Note: When using Traefik, access initial setup via container IP:3000 before DNS is configured
|
|
|
#}
|
|
|
- {% if network_mode == '' or network_mode == 'bridge' or traefik_enabled %}
|
|
|
+ {% if not network_mode or network_mode == 'bridge' or traefik_enabled %}
|
|
|
ports:
|
|
|
{% if not traefik_enabled %}
|
|
|
- "{{ ports_http }}:80/tcp"
|
|
|
- "{{ ports_https }}:443/tcp"
|
|
|
+ {% endif %}
|
|
|
{% if initial_setup %}
|
|
|
- "{{ ports_initial }}:3000/tcp"
|
|
|
{% endif %}
|
|
|
- {% endif %}
|
|
|
- "{{ ports_https }}:443/udp"
|
|
|
- "{{ ports_dns }}:53/tcp"
|
|
|
- "{{ ports_dns }}:53/udp"
|
|
|
@@ -57,28 +58,15 @@ services:
|
|
|
- traefik.enable=true
|
|
|
- traefik.docker.network={{ traefik_network }}
|
|
|
- traefik.http.services.{{ service_name }}_web.loadBalancer.server.port=80
|
|
|
- - traefik.http.routers.{{ service_name }}_http.service={{ service_name }}_web
|
|
|
- - traefik.http.routers.{{ service_name }}_http.rule=Host(`{{ traefik_host }}.{{ traefik_domain }}`)
|
|
|
- - traefik.http.routers.{{ service_name }}_http.entrypoints=web
|
|
|
+ - traefik.http.routers.{{ service_name }}_web_http.service={{ service_name }}_web
|
|
|
+ - traefik.http.routers.{{ service_name }}_web_http.rule=Host(`{{ traefik_host }}.{{ traefik_domain }}`)
|
|
|
+ - traefik.http.routers.{{ service_name }}_web_http.entrypoints=web
|
|
|
{% if traefik_tls_enabled %}
|
|
|
- - traefik.http.routers.{{ service_name }}_https.service={{ service_name }}_web
|
|
|
- - traefik.http.routers.{{ service_name }}_https.rule=Host(`{{ traefik_host }}.{{ traefik_domain }}`)
|
|
|
- - traefik.http.routers.{{ service_name }}_https.entrypoints=websecure
|
|
|
- - traefik.http.routers.{{ service_name }}_https.tls=true
|
|
|
- - traefik.http.routers.{{ service_name }}_https.tls.certresolver={{ traefik_tls_certresolver }}
|
|
|
- {% endif %}
|
|
|
- {#
|
|
|
- Initial setup routing (port 3000):
|
|
|
- Routes setup wizard through separate Traefik service.
|
|
|
- Note: Setup wizard is available at http://<host>.<domain>/setup during initial configuration.
|
|
|
- #}
|
|
|
- {% if initial_setup %}
|
|
|
- - traefik.http.services.{{ service_name }}_setup.loadBalancer.server.port=3000
|
|
|
- - traefik.http.routers.{{ service_name }}_setup.service={{ service_name }}_setup
|
|
|
- - traefik.http.routers.{{ service_name }}_setup.rule=Host(`{{ traefik_host }}.{{ traefik_domain }}`) && PathPrefix(`/setup`)
|
|
|
- - traefik.http.routers.{{ service_name }}_setup.entrypoints=web
|
|
|
- - traefik.http.middlewares.{{ service_name }}_setup-strip.stripprefix.prefixes=/setup
|
|
|
- - traefik.http.routers.{{ service_name }}_setup.middlewares={{ service_name }}_setup-strip
|
|
|
+ - traefik.http.routers.{{ service_name }}_web_https.service={{ service_name }}_web
|
|
|
+ - traefik.http.routers.{{ service_name }}_web_https.rule=Host(`{{ traefik_host }}.{{ traefik_domain }}`)
|
|
|
+ - traefik.http.routers.{{ service_name }}_web_https.entrypoints=websecure
|
|
|
+ - traefik.http.routers.{{ service_name }}_web_https.tls=true
|
|
|
+ - traefik.http.routers.{{ service_name }}_web_https.tls.certresolver={{ traefik_tls_certresolver }}
|
|
|
{% endif %}
|
|
|
{% endif %}
|
|
|
|
|
|
@@ -108,9 +96,6 @@ networks:
|
|
|
- subnet: {{ network_macvlan_subnet }}
|
|
|
gateway: {{ network_macvlan_gateway }}
|
|
|
name: {{ network_name }}
|
|
|
- {% elif swarm_enabled %}
|
|
|
- driver: overlay
|
|
|
- attachable: true
|
|
|
{% else %}
|
|
|
driver: bridge
|
|
|
{% endif %}
|