feat(traefik): allow exposure of dashboard via domain
This commit is contained in:
parent
bce1daf5a6
commit
54be7db71e
4 changed files with 20 additions and 7 deletions
|
|
@ -41,6 +41,7 @@ selfsigned_common_name: "*.local.test"
|
||||||
|
|
||||||
# Dashboard
|
# Dashboard
|
||||||
enable_dashboard: false
|
enable_dashboard: false
|
||||||
|
dashboard_domain: "" # e.g., "traefik.local.test" - if set, exposes dashboard via hostname instead of port 8080
|
||||||
|
|
||||||
# Access log configuration
|
# Access log configuration
|
||||||
enable_access_logs: true
|
enable_access_logs: true
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,6 @@
|
||||||
path: "{{ docker_volume_dir }}/config"
|
path: "{{ docker_volume_dir }}/config"
|
||||||
state: directory
|
state: directory
|
||||||
mode: '0755'
|
mode: '0755'
|
||||||
when: traefik_mode == 'dmz'
|
|
||||||
|
|
||||||
- name: Create letsencrypt directory
|
- name: Create letsencrypt directory
|
||||||
file:
|
file:
|
||||||
|
|
@ -66,6 +65,21 @@
|
||||||
notify: restart traefik
|
notify: restart traefik
|
||||||
when: traefik_mode == 'dmz'
|
when: traefik_mode == 'dmz'
|
||||||
|
|
||||||
|
- name: Generate dashboard routing configuration
|
||||||
|
template:
|
||||||
|
src: dashboard.yml.j2
|
||||||
|
dest: "{{ docker_volume_dir }}/config/dashboard.yml"
|
||||||
|
mode: '0644'
|
||||||
|
notify: restart traefik
|
||||||
|
when: enable_dashboard | bool and dashboard_domain | length > 0
|
||||||
|
|
||||||
|
- name: Remove dashboard routing configuration when not needed
|
||||||
|
file:
|
||||||
|
path: "{{ docker_volume_dir }}/config/dashboard.yml"
|
||||||
|
state: absent
|
||||||
|
notify: restart traefik
|
||||||
|
when: not (enable_dashboard | bool) or dashboard_domain | length == 0
|
||||||
|
|
||||||
- name: Create docker-compose file for traefik
|
- name: Create docker-compose file for traefik
|
||||||
template:
|
template:
|
||||||
src: docker-compose.yml.j2
|
src: docker-compose.yml.j2
|
||||||
|
|
|
||||||
|
|
@ -16,17 +16,15 @@ services:
|
||||||
ports:
|
ports:
|
||||||
- "80:80"
|
- "80:80"
|
||||||
- "443:443"
|
- "443:443"
|
||||||
{% if enable_dashboard %}
|
{% if enable_dashboard and not dashboard_domain %}
|
||||||
- "8080:8080"
|
- "8080:8080"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
volumes:
|
volumes:
|
||||||
- {{ docker_volume_dir }}/traefik.yml:/traefik.yml:ro
|
- {{ docker_volume_dir }}/traefik.yml:/traefik.yml:ro
|
||||||
|
- {{ docker_volume_dir }}/config:/config:ro
|
||||||
{% if cert_mode == 'acme' %}
|
{% if cert_mode == 'acme' %}
|
||||||
- {{ docker_volume_dir }}/letsencrypt:/letsencrypt
|
- {{ docker_volume_dir }}/letsencrypt:/letsencrypt
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if traefik_mode == 'dmz' %}
|
|
||||||
- {{ docker_volume_dir }}/config:/config:ro
|
|
||||||
{% endif %}
|
|
||||||
{% if traefik_mode == 'backend' %}
|
{% if traefik_mode == 'backend' %}
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,10 @@ log:
|
||||||
{% if enable_dashboard %}
|
{% if enable_dashboard %}
|
||||||
api:
|
api:
|
||||||
dashboard: true
|
dashboard: true
|
||||||
|
{% if not dashboard_domain %}
|
||||||
insecure: true
|
insecure: true
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% if enable_access_logs %}
|
{% if enable_access_logs %}
|
||||||
accessLog:
|
accessLog:
|
||||||
|
|
@ -26,11 +28,9 @@ entryPoints:
|
||||||
address: ":443"
|
address: ":443"
|
||||||
|
|
||||||
providers:
|
providers:
|
||||||
{% if traefik_mode == 'dmz' %}
|
|
||||||
file:
|
file:
|
||||||
directory: /config
|
directory: /config
|
||||||
watch: true
|
watch: true
|
||||||
{% endif %}
|
|
||||||
{% if traefik_mode == 'backend' %}
|
{% if traefik_mode == 'backend' %}
|
||||||
docker:
|
docker:
|
||||||
endpoint: "unix:///var/run/docker.sock"
|
endpoint: "unix:///var/run/docker.sock"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue