Define a certificates resolver

This commit is contained in:
Kris Lamoureux 2020-09-03 19:00:27 -04:00
parent d87d5ff525
commit 668414e641
Signed by: kris
GPG Key ID: 3EDA9C3441EDA925
7 changed files with 26 additions and 16 deletions

View File

@ -10,6 +10,8 @@ traefik_version: latest
traefik_dashboard: true traefik_dashboard: true
traefik_domain: traefik.vm.krislamo.org traefik_domain: traefik.vm.krislamo.org
traefik_auth: admin:$apr1$T1l.BCFz$Jyg8msXYEAUi3LLH39I9d1 # admin:admin traefik_auth: admin:$apr1$T1l.BCFz$Jyg8msXYEAUi3LLH39I9d1 # admin:admin
#traefik_acme_email: realemail@example.com # Let's Encrypt settings
#traefik_production: true
# nextcloud # nextcloud
nextcloud_version: stable nextcloud_version: stable

View File

@ -32,6 +32,7 @@
labels: labels:
traefik.http.routers.nextcloud.rule: "Host(`{{ nextcloud_domain }}`)" traefik.http.routers.nextcloud.rule: "Host(`{{ nextcloud_domain }}`)"
traefik.http.routers.nextcloud.entrypoints: websecure traefik.http.routers.nextcloud.entrypoints: websecure
traefik.http.routers.nextcloud.tls.certresolver: resolver
traefik.http.middlewares.nextcloud-webdav.redirectregex.regex: "https://(.*)/.well-known/(card|cal)dav" traefik.http.middlewares.nextcloud-webdav.redirectregex.regex: "https://(.*)/.well-known/(card|cal)dav"
traefik.http.middlewares.nextcloud-webdav.redirectregex.replacement: "https://${1}/remote.php/dav/" traefik.http.middlewares.nextcloud-webdav.redirectregex.replacement: "https://${1}/remote.php/dav/"
traefik.http.middlewares.nextcloud-webdav.redirectregex.permanent: "true" traefik.http.middlewares.nextcloud-webdav.redirectregex.permanent: "true"

View File

@ -1,6 +1,7 @@
traefik_name: traefik traefik_name: traefik
traefik_dashboard: false traefik_dashboard: false
traefik_root: "/opt/{{ traefik_name }}" traefik_root: "/opt/{{ traefik_name }}"
traefik_production: false
traefik_ports: traefik_ports:
- "80:80" - "80:80"
- "443:443" - "443:443"

View File

@ -3,3 +3,11 @@
path: "{{ traefik_root }}/config/dynamic" path: "{{ traefik_root }}/config/dynamic"
state: touch state: touch
listen: reload_traefik listen: reload_traefik
- name: Restart Traefik container
docker_container:
name: "{{ traefik_name }}"
image: traefik:{{ traefik_version }}
state: started
restart: yes
listen: restart_traefik

View File

@ -7,12 +7,7 @@
template: template:
src: traefik.yml.j2 src: traefik.yml.j2
dest: "{{ traefik_root }}/config/traefik.yml" dest: "{{ traefik_root }}/config/traefik.yml"
notify: restart_traefik
- name: Install dynamic Traefik configuration
template:
src: tls.yml.j2
dest: "{{ traefik_root }}/config/dynamic/tls.yml"
notify: reload_traefik
- name: Create Traefik network - name: Create Traefik network
docker_network: docker_network:
@ -40,4 +35,3 @@
volumes: volumes:
- /var/run/docker.sock:/var/run/docker.sock - /var/run/docker.sock:/var/run/docker.sock
- "{{ traefik_root }}/config:/etc/traefik" - "{{ traefik_root }}/config:/etc/traefik"
- "{{ traefik_root }}/letsencrypt:/etc/letsencrypt"

View File

@ -1,9 +0,0 @@
tls:
certificates:
- certFile: /etc/letsencrypt/fullchain.pem
keyFile: /etc/letsencrypt/privkey.pem
stores:
default:
defaultCertificate:
certFile: /etc/letsencrypt/fullchain.pem
keyFile: /etc/letsencrypt/privkey.pem

View File

@ -20,3 +20,16 @@ entrypoints:
address: ':443' address: ':443'
http: http:
tls: {} tls: {}
{% if traefik_acme_email is defined %}
certificatesResolvers:
resolver:
acme:
email: {{ traefik_acme_email }}
storage: /etc/traefik/acme.json
{% if not traefik_production -%}
caServer: https://acme-staging-v02.api.letsencrypt.org/directory
{% endif -%}
httpChallenge:
entryPoint: web
{% endif %}