Browse Source
Resolve "Migrate to Traefik v2" Closes #61 See merge request cyber5k/mistborn!36merge-requests/39/merge
16 changed files with 153 additions and 281 deletions
@ -1,5 +1,5 @@ |
|||||||
FROM traefik:alpine |
FROM traefik:v2.2 |
||||||
RUN mkdir -p /etc/traefik/acme |
RUN mkdir -p /etc/traefik/acme |
||||||
RUN touch /etc/traefik/acme/acme.json |
RUN touch /etc/traefik/acme/acme.json |
||||||
RUN chmod 600 /etc/traefik/acme/acme.json |
RUN chmod 600 /etc/traefik/acme/acme.json |
||||||
COPY ./compose/production/traefik/traefik.toml /etc/traefik |
#COPY ./compose/production/traefik/dynamic.toml /etc/traefik |
||||||
|
|||||||
@ -0,0 +1,31 @@ |
|||||||
|
[tls.stores] |
||||||
|
[tls.stores.default] |
||||||
|
[tls.stores.default.defaultCertificate] |
||||||
|
certFile = "/tls/cert.crt" |
||||||
|
keyFile = "/tls/cert.key" |
||||||
|
|
||||||
|
[tls.options] |
||||||
|
[tls.options.default] |
||||||
|
minVersion = "VersionTLS12" |
||||||
|
|
||||||
|
[http.services] |
||||||
|
[http.services.cockpit.loadBalancer] |
||||||
|
[[http.services.cockpit.loadBalancer.servers]] |
||||||
|
url = "http://10.2.3.1:9090" |
||||||
|
|
||||||
|
[http.routers] |
||||||
|
[http.routers.cockpit] |
||||||
|
rule = "Host(`cockpit.mistborn`)" |
||||||
|
service = "cockpit" |
||||||
|
entrypoints = ["web", "websecure"] |
||||||
|
#middlewares = |
||||||
|
|
||||||
|
[http.middlewares] |
||||||
|
[http.middlewares.mistborn_auth.forwardAuth] |
||||||
|
address = "https://home.mistborn/auth/" |
||||||
|
trustForwardHeader = true |
||||||
|
[http.middlewares.mistborn_auth.forwardAuth.tls] |
||||||
|
insecureSkipVerify = true |
||||||
|
|
||||||
|
[http.middlewares.mistborn_headers.headers] |
||||||
|
hostsProxyHeaders = ['X-CSRFToken'] |
||||||
@ -1,257 +0,0 @@ |
|||||||
#debug = true |
|
||||||
|
|
||||||
logLevel = "ERROR" #DEBUG, INFO, WARN, ERROR, FATAL, PANIC |
|
||||||
InsecureSkipVerify = true |
|
||||||
|
|
||||||
defaultEntryPoints = ["http", "https"] |
|
||||||
#defaultEntryPoints = ["http"] |
|
||||||
|
|
||||||
# Entrypoints, http and https |
|
||||||
[entryPoints] |
|
||||||
# http should be redirected to https |
|
||||||
[entryPoints.http] |
|
||||||
address = ":80" |
|
||||||
#[entryPoints.http.redirect] |
|
||||||
#entryPoint = "https" |
|
||||||
# https is the default |
|
||||||
[entryPoints.https] |
|
||||||
address = ":443" |
|
||||||
[entryPoints.https.tls] |
|
||||||
[entryPoints.https.tls.defaultCertificate] |
|
||||||
certFile = "/tls/cert.crt" |
|
||||||
keyFile = "/tls/cert.key" |
|
||||||
|
|
||||||
## Enable ACME (Let's Encrypt): automatic SSL |
|
||||||
#[acme] |
|
||||||
## Email address used for registration |
|
||||||
#email = "steven@cyber5k.com" |
|
||||||
#storage = "/etc/traefik/acme/acme.json" |
|
||||||
#entryPoint = "https" |
|
||||||
#onDemand = false |
|
||||||
#OnHostRule = true |
|
||||||
# # Use a HTTP-01 acme challenge rather than TLS-SNI-01 challenge |
|
||||||
# [acme.httpChallenge] |
|
||||||
# entryPoint = "http" |
|
||||||
|
|
||||||
[file] |
|
||||||
[backends] |
|
||||||
[backends.django] |
|
||||||
[backends.django.servers.server1] |
|
||||||
url = "http://django:5000" |
|
||||||
|
|
||||||
[backends.pihole] |
|
||||||
[backends.pihole.servers.server1] |
|
||||||
url = "http://pihole:80" |
|
||||||
|
|
||||||
[backends.homeassistant] |
|
||||||
[backends.homeassistant.servers.server1] |
|
||||||
url = "http://homeassistant:8123" |
|
||||||
|
|
||||||
[backends.syncthing] |
|
||||||
[backends.syncthing.servers.server1] |
|
||||||
url = "http://syncthing:8384" |
|
||||||
|
|
||||||
[backends.rocketchat] |
|
||||||
[backends.rocketchat.servers.server1] |
|
||||||
url = "http://rocketchat:3000" |
|
||||||
|
|
||||||
[backends.nextcloud] |
|
||||||
[backends.nextcloud.servers.server1] |
|
||||||
url = "http://nextcloud:80" |
|
||||||
|
|
||||||
[backends.onlyoffice] |
|
||||||
[backends.onlyoffice.servers.server1] |
|
||||||
url = "http://onlyoffice:80" |
|
||||||
|
|
||||||
[backends.bitwarden] |
|
||||||
[backends.bitwarden.servers.server1] |
|
||||||
url = "http://bitwarden:80" |
|
||||||
|
|
||||||
[backends.jellyfin] |
|
||||||
[backends.jellyfin.servers.server1] |
|
||||||
url = "http://jellyfin:8096" |
|
||||||
|
|
||||||
[backends.jitsi] |
|
||||||
[backends.jitsi.servers.server1] |
|
||||||
url = "http://jitsi-web:80" |
|
||||||
|
|
||||||
[backends.raspap] |
|
||||||
[backends.raspap.servers.server1] |
|
||||||
url = "http://raspap:80" |
|
||||||
|
|
||||||
[backends.cockpit] |
|
||||||
[backends.cockpit.servers.server1] |
|
||||||
url = "http://10.2.3.1:9090" |
|
||||||
|
|
||||||
[frontends] |
|
||||||
[frontends.django] |
|
||||||
backend = "django" |
|
||||||
passHostHeader = true |
|
||||||
[frontends.django.headers] |
|
||||||
HostsProxyHeaders = ['X-CSRFToken'] |
|
||||||
[frontends.django.routes.dr1] |
|
||||||
#rule = "Host:mistborn.cyber5k.com" |
|
||||||
rule = "Host:home.mistborn" |
|
||||||
|
|
||||||
[frontends.pihole] |
|
||||||
backend = "pihole" |
|
||||||
passHostHeader = true |
|
||||||
[frontends.pihole.auth] |
|
||||||
[frontends.pihole.auth.forward] |
|
||||||
address = "https://home.mistborn/auth/" |
|
||||||
trustForwardHeader = false |
|
||||||
[frontends.pihole.auth.forward.tls] |
|
||||||
insecureSkipVerify = true |
|
||||||
[frontends.pihole.headers] |
|
||||||
HostsProxyHeaders = ['X-CSRFToken'] |
|
||||||
[frontends.pihole.routes.dr1] |
|
||||||
rule = "Host:pihole.mistborn" |
|
||||||
|
|
||||||
[frontends.homeassistant] |
|
||||||
backend = "homeassistant" |
|
||||||
passHostHeader = true |
|
||||||
[frontends.homeassistant.auth] |
|
||||||
[frontends.homeassistant.auth.forward] |
|
||||||
address = "https://home.mistborn/auth/" |
|
||||||
trustForwardHeader = false |
|
||||||
[frontends.homeassistant.auth.forward.tls] |
|
||||||
insecureSkipVerify = true |
|
||||||
[frontends.homeassistant.headers] |
|
||||||
HostsProxyHeaders = ['X-CSRFToken'] |
|
||||||
[frontends.homeassistant.routes.dr1] |
|
||||||
rule = "Host:homeassistant.mistborn" |
|
||||||
|
|
||||||
[frontends.syncthing] |
|
||||||
backend = "syncthing" |
|
||||||
passHostHeader = true |
|
||||||
[frontends.syncthing.auth] |
|
||||||
[frontends.syncthing.auth.forward] |
|
||||||
address = "https://home.mistborn/auth/" |
|
||||||
trustForwardHeader = false |
|
||||||
[frontends.syncthing.auth.forward.tls] |
|
||||||
insecureSkipVerify = true |
|
||||||
[frontends.syncthing.headers] |
|
||||||
HostsProxyHeaders = ['X-CSRFToken'] |
|
||||||
[frontends.syncthing.routes.dr1] |
|
||||||
rule = "Host:syncthing.mistborn" |
|
||||||
|
|
||||||
[frontends.rocketchat] |
|
||||||
backend = "rocketchat" |
|
||||||
passHostHeader = true |
|
||||||
[frontends.rocketchat.auth] |
|
||||||
[frontends.rocketchat.auth.forward] |
|
||||||
address = "https://home.mistborn/auth/" |
|
||||||
trustForwardHeader = false |
|
||||||
[frontends.rocketchat.auth.forward.tls] |
|
||||||
insecureSkipVerify = true |
|
||||||
[frontends.rocketchat.headers] |
|
||||||
HostsProxyHeaders = ['X-CSRFToken'] |
|
||||||
[frontends.rocketchat.routes.dr1] |
|
||||||
rule = "Host:chat.mistborn" |
|
||||||
|
|
||||||
[frontends.nextcloud] |
|
||||||
backend = "nextcloud" |
|
||||||
passHostHeader = true |
|
||||||
[frontends.nextcloud.auth] |
|
||||||
[frontends.nextcloud.auth.forward] |
|
||||||
address = "https://home.mistborn/auth/" |
|
||||||
trustForwardHeader = false |
|
||||||
[frontends.nextcloud.auth.forward.tls] |
|
||||||
insecureSkipVerify = true |
|
||||||
[frontends.nextcloud.headers] |
|
||||||
HostsProxyHeaders = ['X-CSRFToken'] |
|
||||||
[frontends.nextcloud.routes.dr1] |
|
||||||
rule = "Host:nextcloud.mistborn" |
|
||||||
|
|
||||||
[frontends.onlyoffice] |
|
||||||
backend = "onlyoffice" |
|
||||||
passHostHeader = true |
|
||||||
[frontends.onlyoffice.auth] |
|
||||||
[frontends.onlyoffice.auth.forward] |
|
||||||
address = "https://home.mistborn/auth/" |
|
||||||
trustForwardHeader = false |
|
||||||
[frontends.onlyoffice.auth.forward.tls] |
|
||||||
insecureSkipVerify = true |
|
||||||
[frontends.onlyoffice.headers] |
|
||||||
HostsProxyHeaders = ['X-CSRFToken'] |
|
||||||
[frontends.onlyoffice.routes.dr1] |
|
||||||
rule = "Host:onlyoffice.mistborn" |
|
||||||
|
|
||||||
[frontends.bitwarden] |
|
||||||
backend = "bitwarden" |
|
||||||
passHostHeader = true |
|
||||||
[frontends.bitwarden.auth] |
|
||||||
[frontends.bitwarden.auth.forward] |
|
||||||
address = "https://home.mistborn/auth/" |
|
||||||
trustForwardHeader = false |
|
||||||
[frontends.bitwarden.auth.forward.tls] |
|
||||||
insecureSkipVerify = true |
|
||||||
[frontends.bitwarden.headers] |
|
||||||
HostsProxyHeaders = ['X-CSRFToken'] |
|
||||||
[frontends.bitwarden.routes.dr1] |
|
||||||
rule = "Host:bitwarden.mistborn" |
|
||||||
|
|
||||||
[frontends.jellyfin] |
|
||||||
backend = "jellyfin" |
|
||||||
passHostHeader = true |
|
||||||
[frontends.jellyfin.auth] |
|
||||||
[frontends.jellyfin.auth.forward] |
|
||||||
address = "https://home.mistborn/auth/" |
|
||||||
trustForwardHeader = false |
|
||||||
[frontends.jellyfin.auth.forward.tls] |
|
||||||
insecureSkipVerify = true |
|
||||||
[frontends.jellyfin.headers] |
|
||||||
HostsProxyHeaders = ['X-CSRFToken'] |
|
||||||
[frontends.jellyfin.routes.dr1] |
|
||||||
rule = "Host:jellyfin.mistborn" |
|
||||||
|
|
||||||
[frontends.jitsi] |
|
||||||
backend = "jitsi" |
|
||||||
passHostHeader = true |
|
||||||
[frontends.jitsi.auth] |
|
||||||
[frontends.jitsi.auth.forward] |
|
||||||
address = "https://home.mistborn/auth/" |
|
||||||
trustForwardHeader = false |
|
||||||
[frontends.jitsi.auth.forward.tls] |
|
||||||
insecureSkipVerify = true |
|
||||||
[frontends.jitsi.headers] |
|
||||||
HostsProxyHeaders = ['X-CSRFToken'] |
|
||||||
[frontends.jitsi.routes.dr1] |
|
||||||
rule = "Host:jitsi.mistborn" |
|
||||||
|
|
||||||
[frontends.raspap] |
|
||||||
backend = "raspap" |
|
||||||
passHostHeader = true |
|
||||||
[frontends.raspap.auth] |
|
||||||
[frontends.raspap.auth.forward] |
|
||||||
address = "https://home.mistborn/auth/" |
|
||||||
trustForwardHeader = false |
|
||||||
[frontends.raspap.auth.forward.tls] |
|
||||||
insecureSkipVerify = true |
|
||||||
[frontends.raspap.headers] |
|
||||||
HostsProxyHeaders = ['X-CSRFToken'] |
|
||||||
[frontends.raspap.routes.dr1] |
|
||||||
rule = "Host:raspap.mistborn" |
|
||||||
|
|
||||||
[frontends.cockpit] |
|
||||||
backend = "cockpit" |
|
||||||
passHostHeader = true |
|
||||||
[frontends.cockpit.auth] |
|
||||||
[frontends.cockpit.auth.forward] |
|
||||||
address = "https://home.mistborn/auth/" |
|
||||||
trustForwardHeader = false |
|
||||||
[frontends.cockpit.auth.forward.tls] |
|
||||||
insecureSkipVerify = true |
|
||||||
[frontends.cockpit.headers] |
|
||||||
HostsProxyHeaders = ['X-CSRFToken'] |
|
||||||
[frontends.cockpit.routes.dr1] |
|
||||||
rule = "Host:cockpit.mistborn" |
|
||||||
|
|
||||||
## Connection to docker host system (docker.sock) |
|
||||||
#[docker] |
|
||||||
#endpoint = "unix:///var/run/docker.sock" |
|
||||||
#domain = "localhost" |
|
||||||
#watch = true |
|
||||||
## This will hide all docker containers that don't have explicitly |
|
||||||
## set label to "enable" |
|
||||||
#exposedbydefault = false |
|
||||||
Loading…
Reference in new issue