Started traefik role
This commit is contained in:
4
ansible/roles/traefik/handlers/main.yml
Normal file
4
ansible/roles/traefik/handlers/main.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
- name: Restart Traefik
|
||||
community.docker.docker_compose:
|
||||
project_src: "{{ install_directory }}/traefik"
|
||||
restarted: true
|
@@ -1,3 +0,0 @@
|
||||
- name: Print key
|
||||
debug:
|
||||
var: porkbun_api_key
|
||||
|
26
ansible/roles/traefik/templates/docker-compose.yml
Normal file
26
ansible/roles/traefik/templates/docker-compose.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
version: "{{ docker_compose_version }}"
|
||||
|
||||
networks:
|
||||
traefik:
|
||||
external: true
|
||||
|
||||
services:
|
||||
traefik:
|
||||
container_name: traefik
|
||||
image: traefik:latest
|
||||
networks:
|
||||
- traefik
|
||||
- docker-socket-proxy
|
||||
ports:
|
||||
- 80:80 # HTTP
|
||||
- 443:443 # HTTPS
|
||||
environment:
|
||||
PORKBUN_API_KEY: "{{ porkbun_api_key }}"
|
||||
PORKBUN_SECRET_API_KEY: "{{ porkbun_secret_api_key }}"
|
||||
volumes:
|
||||
- "{{ data_dir }}/traefik:/etc/traefik"
|
||||
labels:
|
||||
traefik.enable: true
|
||||
traefik.http.routers.traefik-dashboard.rule: "Host(`traefik.local.{{ personal_domain }}`)"
|
||||
traefik.http.routers.traefik-dashboard.service: api@internal
|
||||
traefik.http.routers.traefik-dashboard.middlewares: lan-whitelist@file
|
55
ansible/roles/traefik/templates/traefik.yml
Normal file
55
ansible/roles/traefik/templates/traefik.yml
Normal file
@@ -0,0 +1,55 @@
|
||||
entryPoints:
|
||||
web:
|
||||
address: :80
|
||||
http:
|
||||
redirections:
|
||||
entryPoint:
|
||||
to: web-secure
|
||||
scheme: https
|
||||
|
||||
web-secure:
|
||||
address: :443
|
||||
http:
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
domains:
|
||||
- main: "{{ personal_domain }}"
|
||||
- sans: "*.{{ personal_domain }}"
|
||||
- main: "local.{{ personal_domain }}"
|
||||
- sans: "*.local.{{ personal_domain }}"
|
||||
middlewares:
|
||||
- secure-headers@file
|
||||
|
||||
traefik:
|
||||
address: :8080
|
||||
|
||||
certificatesResolvers:
|
||||
letsencrypt:
|
||||
acme:
|
||||
# Staging server
|
||||
caServer: https://acme-staging-v02.api.letsencrypt.org/directory
|
||||
|
||||
# Production server
|
||||
# caServer: https://acme-v02.api.letsencrypt.org/directory
|
||||
email: "{{ letsencrypt_email }}"
|
||||
storage: /etc/traefik.acme.json
|
||||
dnsChallenge:
|
||||
provider: porkbun
|
||||
delayBeforeCheck: 0
|
||||
|
||||
serversTransport:
|
||||
insecureSkipVerify: true
|
||||
|
||||
tls:
|
||||
options:
|
||||
default:
|
||||
minVersion: VersionTLS12
|
||||
|
||||
providers:
|
||||
docker:
|
||||
endpoint: tcp://docker_socket_proxy:2375
|
||||
exposedByDefault: false
|
||||
network: traefik
|
||||
file:
|
||||
directory: /etc/traefik/conf
|
||||
watch: true
|
@@ -19,3 +19,11 @@ porkbun_secret_api_key: !vault |
|
||||
33393831323334626335333630366331633464353638353636666430616630306139336665376132
|
||||
34326563626465633036656134373430616634393931626638636332323562366565326535626237
|
||||
38313264383866633662
|
||||
|
||||
letsencrypt_email: !vault |
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
62353466393863323930373663656438626661393566366336326235666137303932623838353865
|
||||
3830323761643134656431646632656166656661303963320a343436353633613763643030303364
|
||||
38396464663634343131306638383131343466613537346463373765646434393366373939653964
|
||||
6630626639393637330a386365303332653162383933353265306134383232303635633935623132
|
||||
63616137626161323037613062663063373963643263313366613233383536316638
|
||||
|
Reference in New Issue
Block a user