Compare commits

...

68 Commits

Author SHA1 Message Date
3wc
c5fd144ff0 Error pages
Re coop-cloud/organising#115
2024-04-01 22:56:45 -03:00
3wc
2db2f71a80 chore: publish 2.6.0+v2.11.0 release 2024-04-01 22:56:20 -03:00
3wc
c558e1dbdb Ditch DISABLE_HTTPS_REDIRECT 2024-04-01 22:53:56 -03:00
3wc
edc29f9594 Add "web-alt" entrypoint (mostly for Icecast) 2024-04-01 19:49:23 -03:00
3wc
f7f77dc942 Add support for unencrypted HTTP apps (please don't use this 😢) 2024-03-30 17:59:48 -03:00
ecc12b2b68 chore: publish 2.5.0+v2.11.0 release 2024-02-16 16:41:57 +01:00
a0e70f33be Merge pull request 'Add support for externally-sourced wildcard certificates' (#45) from wolcen/traefik:master into master
Reviewed-on: coop-cloud/traefik#45
Reviewed-by: decentral1se <decentral1se@noreply.git.coopcloud.tech>
2024-01-12 20:48:03 +00:00
e3c1df83fa chore(security): update traefik to 2.10.7
Addresses two CVE fixes from 2.10.6
2024-01-11 21:47:59 -05:00
998190f684 feat: add distinct version for wildcard key secret 2024-01-11 21:47:50 -05:00
cd92c909ba docs: correct secret insertion examples 2024-01-11 21:47:04 -05:00
64351c27d1 fix: deprecation warning - handled by redirect under web already 2024-01-11 21:47:04 -05:00
f4b05fd87f Bump file revisions for wildcard support 2024-01-11 21:45:32 -05:00
3c5333ba71 feat: add support for wildcard certs via secrets 2024-01-11 21:45:05 -05:00
3wc
5f2fd0bf37 chore: publish 2.4.3+v2.10.5 release 2023-10-16 13:16:09 +01:00
3wc
ac3a47fe8c chore: publish 2.4.2+v2.10.4 release 2023-07-25 17:19:22 +01:00
1e02f358ed chore: publish 2.4.1+v2.10.3 release 2023-07-10 09:51:42 +02:00
6cdcc25384 chore: publish 2.4.0+v2.10.1 release 2023-05-25 13:40:08 +02:00
d2b7b671f5 feat: use host mode port networking 2023-05-25 13:34:35 +02:00
c9d80df34d feat: enable public facing metrics 2023-05-25 13:34:34 +02:00
aaa34c1ea8 chore: publish 2.3.1+v2.10.2 release 2023-05-24 11:36:27 +02:00
6dee438492 fix: increase config version 2023-05-24 11:33:31 +02:00
ff668b2266 chore: publish 2.3.0+v2.10.2 release 2023-05-24 11:31:20 +02:00
e2c16be2ff feat: adds basic auth middleware 2023-05-10 15:35:52 +02:00
3wc
892f3c3124 chore: publish 2.2.0+v2.10.2 release 2023-04-27 16:12:25 -04:00
3wc
4205f4911e Bump TRAEFIK_YML_VERSION 2023-04-27 16:12:03 -04:00
3wc
13eb4a782d chore: publish 2.2.0+v2.10.1 release 2023-04-27 15:58:01 -04:00
b00a65a890 feat: routing bare metal 2023-04-20 21:19:47 +02:00
a213094d46 add timeout label 2023-04-18 18:36:09 +02:00
8bb3adba81 add auto update and timeout env 2023-04-18 18:26:15 +02:00
a7bff09db6 chore: publish 2.1.0+v2.9.9 release 2023-04-04 18:26:39 +02:00
3wc
6167d41588 Add DNS challenge / wildcard instructions to README.md
[ci skip]
2023-03-06 20:58:19 -05:00
31330d967b chore: publish 2.0.4+v2.9.6 release 2023-02-13 17:09:40 +01:00
f23357c9cd fix: remove invalid tls label
See coop-cloud/organising#412
2023-02-13 11:16:07 +01:00
3wc
b6bb286282 Switch to self-hosted stack-ssh-deploy image [mass update] 2023-01-21 11:49:56 -08:00
3wc
14a34c7b7f Fix CI by adding networks: [mass update] 2023-01-20 11:58:41 -08:00
3wc
39bfdb4c82 Automatically generate catalogue on release [mass update]
Re: coop-cloud/recipes-catalogue-json#4
2023-01-20 10:27:12 -08:00
3wc
1d43c68274 Update abra syntax in examples (finally) [mass update] 2023-01-19 16:02:28 -08:00
f1cfb814dd chore: publish 2.0.3+v2.9.6 release 2023-01-18 13:48:37 -08:00
ece8807959 chore: publish 2.0.2+v2.9.5 release 2022-12-02 11:09:17 +01:00
3wc
a1e75e8c8b Revert to traefik.example.com templating 2022-11-16 20:35:34 -08:00
b62cb273ef Merge pull request 'Up versions to latest stable and one ping less to Google' (#38) from javielico/traefik:master into master
Reviewed-on: coop-cloud/traefik#38
2022-11-11 19:32:15 +00:00
5f25a272cb One ping less to Google, swap for Quad9 2022-11-11 17:02:09 +00:00
4c7a272838 Up version to 2.9.4 2022-11-11 16:59:00 +00:00
3wc
2e68186042 chore: publish 2.0.0+v2.9.1 release 2022-10-18 17:09:44 -04:00
3wc
975d8e01a4 Use $STACK_NAME for default router name..
..instead of hard-coded `traefik`
2022-10-18 17:06:11 -04:00
fcff3a2d6a syntax
minor
2022-10-13 16:51:46 +00:00
981d2a3808 chore: publish 1.1.1+v2.8.1 release 2022-07-14 10:47:58 +02:00
29eb1058cd chore: publish 1.1.0+v2.8.0 release 2022-07-01 11:35:28 +02:00
df49a1f3b2 use domain env var 2022-03-27 21:12:16 +02:00
3wc
099dcfaed0 Add compy support 2022-03-26 23:49:10 +02:00
1d7542cd5f fix: drop minio config changes for now
New version is hard to config, unsure if this is needed.
2022-01-06 11:12:47 +01:00
5e1604322e fix: bump vendored config 2022-01-06 10:06:04 +01:00
36707989d2 fix: add missing entrypoints (matrix, minio) 2022-01-06 10:01:52 +01:00
29f90fe409 feat: minio port 2022-01-06 09:50:35 +01:00
8a48c5e507 chore: publish 1.0.1+v2.5.6 release 2021-12-28 03:38:36 +01:00
612d0cc6cc feat: matrix federation 2021-12-13 13:56:36 +01:00
36c7b740ab Merge pull request 'Add a slot for a second traefik-forward-auth' (#31) from forward-auth-2 into master
Reviewed-on: coop-cloud/traefik#31
2021-11-24 15:10:53 +00:00
3wc
59b0f8d645 Make sure variable names align, fix template 2021-11-23 12:40:17 +02:00
3wc
556c448c05 Align traefik-forward-auth 2nd var name with existing 2021-11-23 12:40:17 +02:00
3wc
26fcaaea69 Add a slot for a second traefik-forward-auth instance 2021-11-23 12:40:17 +02:00
3wc
02ebb1412f Goodbye, emojis! 😢
[ci skip]
2021-11-23 12:23:23 +02:00
3wc
8e91a5a3ee Minuscule .env tweak 2021-10-14 00:44:40 +02:00
3048d09cd8 fix: support configurable tfa service 2021-10-14 00:43:56 +02:00
2c9e980809 chore: remove old file 2021-10-12 11:41:56 +02:00
ec47f5c9dd chore: first release 2021-10-12 11:41:53 +02:00
cf81dc543a chore: upgrade to 2.5.2 and add spaces 2021-09-15 13:35:57 +02:00
48f03d8fcf Remove 2222 port from host networking
This was an old config for when we did host mode networking for gitea
ssh but now we use the SNI thing that seems to work.
2021-09-02 09:15:58 +02:00
8c6fe61e60 Merge pull request 'Allow prometheus metrics collection' (#28) from mirsal/traefik:prometheus-metrics into master
Reviewed-on: coop-cloud/traefik#28
2021-08-10 06:19:46 +00:00
19 changed files with 268 additions and 44 deletions

View File

@ -3,10 +3,12 @@ kind: pipeline
name: deploy to swarm-test.autonomic.zone
steps:
- name: deployment
image: decentral1se/stack-ssh-deploy:latest
image: git.coopcloud.tech/coop-cloud/stack-ssh-deploy:latest
settings:
host: swarm-test.autonomic.zone
stack: traefik
networks:
- proxy
deploy_key:
from_secret: drone_ssh_swarm_test
environment:
@ -22,11 +24,17 @@ trigger:
- master
---
kind: pipeline
name: recipe release
name: generate recipe catalogue
steps:
- name: release a new version
image: thecoopcloud/drone-abra:latest
image: plugins/downstream
settings:
command: recipe traefik release
deploy_key:
from_secret: abra_bot_deploy_key
server: https://build.coopcloud.tech
token:
from_secret: drone_abra-bot_token
fork: true
repositories:
- coop-cloud/auto-recipes-catalogue-json
trigger:
event: tag

View File

@ -1,4 +1,6 @@
TYPE=traefik
TIMEOUT=300
ENABLE_AUTO_UPDATE=true
DOMAIN=traefik.example.com
LETS_ENCRYPT_ENV=production
@ -8,8 +10,7 @@ LETS_ENCRYPT_EMAIL=certs@example.com
# WARN, INFO etc.
LOG_LEVEL=WARN
# This is here so later lines can extend the definition; you likely don't wanna
# edit
# This is here so later lines can extend it; you likely don't wanna edit
COMPOSE_FILE="compose.yml"
#####################################################################
@ -46,12 +47,34 @@ COMPOSE_FILE="compose.yml"
#SECRET_GANDIV5_API_KEY_VERSION=v1
#####################################################################
# Keycloak log-in #
# Manual wildcard certificate insertion #
#####################################################################
# Set wildcards = 1, and uncomment compose_file to enable.
# Create your certs elsewhere and add them like:
# abra app secrets insert {myapp.example.coop} ssl_cert v1 "$(cat /path/to/fullchain.pem)"
# abra app secrets insert {myapp.example.coop} ssl_key v1 "$(cat /path/to/privkey.pem)"
#WILDCARDS_ENABLED=1
#SECRET_WILDCARD_CERT_VERSION=v1
#SECRET_WILDCARD_KEY_VERSION=v1
#COMPOSE_FILE="$COMPOSE_FILE:compose.wildcard.yml"
#####################################################################
# Authentication #
#####################################################################
## Enable Keycloak
#COMPOSE_FILE="$COMPOSE_FILE:compose.keycloak.yml"
#KEYCLOAK_MIDDLEWARE_ENABLED=1
#KEYCLOAK_TFA_SERVICE=traefik-forward-auth_app
#KEYCLOAK_MIDDLEWARE_2_ENABLED=1
#KEYCLOAK_TFA_SERVICE_2=traefik-forward-auth_app
## BASIC_AUTH
## Use httpasswd to generate the secret
#COMPOSE_FILE="$COMPOSE_FILE:compose.basicauth.yml"
#BASIC_AUTH=1
#SECRET_USERSFILE_VERSION=v1
#####################################################################
# Prometheus metrics #
@ -59,8 +82,15 @@ COMPOSE_FILE="compose.yml"
## Enable prometheus metrics collection
## used used by the coop-cloud monitoring stack
#COMPOSE_FILE="$COMPOSE_FILE:compose.metrics.yml"
#METRICS_ENABLED=1
#####################################################################
# File provider directory configuration #
# (Route bare metal and non-docker services on the machine!) #
#####################################################################
#FILE_PROVIDER_DIRECTORY_ENABLED=1
#####################################################################
# Additional services #
#####################################################################
@ -69,6 +99,10 @@ COMPOSE_FILE="compose.yml"
#COMPOSE_FILE="$COMPOSE_FILE:compose.smtp.yml"
#SMTP_ENABLED=1
## Compy
#COMPOSE_FILE="$COMPOSE_FILE:compose.compy.yml"
#COMPY_ENABLED=1
## Gitea SSH
# COMPOSE_FILE="$COMPOSE_FILE:compose.gitea.yml"
# GITEA_SSH_ENABLED=1
@ -92,3 +126,12 @@ COMPOSE_FILE="compose.yml"
## Mumble
#COMPOSE_FILE="$COMPOSE_FILE:compose.mumble.yml"
#MUMBLE_ENABLED=1
## Matrix
#COMPOSE_FILE="$COMPOSE_FILE:compose.matrix.yml"
#MATRIX_FEDERATION_ENABLED=1
## "Web alt", an alternative web port
# NOTE(3wc): as of 2024-04-01 only the `icecast` recipe uses this
#COMPOSE_FILE="$COMPOSE_FILE:compose.web-alt.yml"
#WEB_ALT_ENABLED=1

View File

@ -7,11 +7,11 @@
<!-- metadata -->
* **Category**: Utilities
* **Status**: ?
* **Image**: [`traefik`](https://hub.docker.com/_/traefik), ❶💚, upstream
* **Image**: [`traefik`](https://hub.docker.com/_/traefik), 4, upstream
* **Healthcheck**: Yes
* **Backups**: No
* **Email**: N/A
* **Tests**: ❷💛
* **Tests**: 2
* **SSO**: ? (Keycloak)
<!-- endmetadata -->
@ -19,8 +19,29 @@
1. Set up Docker Swarm and [`abra`]
2. `abra app new traefik`
3. `abra app YOURAPPDOMAIN config` - be sure to change `DOMAIN` to something that resolves to
3. `abra app config YOURAPPDOMAIN` - be sure to change `DOMAIN` to something that resolves to
your Docker swarm box
4. `abra app YOURAPPDOMAIN deploy`
4. `abra app deploy YOURAPPDOMAIN`
## Configuring wildcard SSL using DNS
Automatic certificate generation will Just Work™ for most recipes which use a fixed
number of subdomains. For some recipes which need to work across arbitrary
subdomains, like
[`federatedwiki`](https://git.coopcloud.tech/coop-cloud/federatedwiki/) and
[`go-ssb-room`](https://git.coopcloud.tech/coop-cloud/federatedwiki/), you'll
need to give Traefik access to your DNS provider so that it can carry out
Letsencrypt DNS challenges.
1. Use Gandi or OVH for DNS 🤡 (support for other providers can be easily added,
see [the `lego` docs](https://go-acme.github.io/lego/dns/#dns-providers).
2. Run `abra app config YOURAPPDOMAIN`
3. Uncomment e.g. `ENABLE_GANDI` and the related `SECRET_.._VERSION` line, e.g.
`SECRET_GANDIV5_API_KEY_VERSION`
4. Generate an API key for your provider
5. Run `abra app secret insert YOURAPPDOMAIN SECRETNAME v1 SECRETVALUE`, where
`SECRETNAME` is from the compose file (e.g. `compose.gandi.yml`) e.g.
`gandiv5_api_key` and `SECRETVALUE` is the API key.
6. Redeploy Traefik, using e.g. `abra app deploy YOURAPPDOMAIN -f`
[`abra`]: https://git.autonomic.zone/autonomic-cooperative/abra

View File

@ -1,3 +1,3 @@
export TRAEFIK_YML_VERSION=v12
export FILE_PROVIDER_YML_VERSION=v2
export TRAEFIK_YML_VERSION=v20
export FILE_PROVIDER_YML_VERSION=v10
export ENTRYPOINT_VERSION=v2

12
compose.basicauth.yml Normal file
View File

@ -0,0 +1,12 @@
version: "3.8"
services:
app:
environment:
- BASIC_AUTH
secrets:
- usersfile
secrets:
usersfile:
name: ${STACK_NAME}_usersfile_${SECRET_USERSFILE_VERSION}
external: true

7
compose.compy.yml Normal file
View File

@ -0,0 +1,7 @@
version: "3.8"
services:
app:
environment:
- COMPY_ENABLED
ports:
- "9999:9999"

29
compose.errors.yml Normal file
View File

@ -0,0 +1,29 @@
---
version: "3.8"
services:
app:
environment:
- "CUSTOM_ERRORS=1"
volumes:
- "traefik-plugins:/plugins-local/"
errors:
image: "tarampampam/error-pages:2.27.0"
networks:
- proxy
deploy:
labels:
- "traefik.enable=true"
# use as "fallback" for any non-registered services (with priority below normal)
- "traefik.http.routers.${STACK_NAME}-error.rule=HostRegexp(`{host:.+}`)"
- "traefik.http.routers.${STACK_NAME}-error.priority=10"
- "traefik.http.routers.${STACK_NAME}-error.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}-error.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.services.${STACK_NAME}-error.loadbalancer.server.port=8080"
# "errors" middleware settings
- "traefik.http.middlewares.${STACK_NAME}-error.errors.status=400-599"
- "traefik.http.middlewares.${STACK_NAME}-error.errors.service=${STACK_NAME}-error"
- "traefik.http.middlewares.${STACK_NAME}-error.errors.query=/{status}.html"
volumes:
traefik-plugins:

View File

@ -10,6 +10,5 @@ services:
labels:
- "traefik.enable=true"
- "traefik.http.services.traefik.loadbalancer.server.port=web"
- "traefik.http.routers.traefik.entrypoints=web-secure"
- "traefik.http.routers.traefik.service=api@internal"
- "coop-cloud.${STACK_NAME}.app.version=v2.4.9-be23e1f6"
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}.service=api@internal"

View File

@ -13,6 +13,3 @@ services:
- target: 443
published: 443
mode: host
- target: 2222
published: 2222
mode: host

View File

@ -5,6 +5,9 @@ services:
app:
deploy:
labels:
- "traefik.http.routers.traefik.middlewares=keycloak@file"
- "traefik.http.routers.${STACK_NAME}.middlewares=keycloak@file"
environment:
- KEYCLOAK_MIDDLEWARE_ENABLED
- KEYCLOAK_TFA_SERVICE
- KEYCLOAK_MIDDLEWARE_2_ENABLED
- KEYCLOAK_TFA_SERVICE_2

7
compose.matrix.yml Normal file
View File

@ -0,0 +1,7 @@
version: "3.8"
services:
app:
environment:
- MATRIX_FEDERATION_ENABLED
ports:
- "8448:8448"

9
compose.metrics.yml Normal file
View File

@ -0,0 +1,9 @@
version: "3.8"
services:
app:
environment:
- METRICS_ENABLED
ports:
- target: 8082
published: 8082
mode: host

9
compose.minio.yml Normal file
View File

@ -0,0 +1,9 @@
---
version: "3.8"
services:
app:
environment:
- MINIO_CONSOLE_ENABLED
ports:
- "9001:9001"

7
compose.web-alt.yml Normal file
View File

@ -0,0 +1,7 @@
version: "3.8"
services:
app:
environment:
- WEB_ALT_ENABLED
ports:
- "8000:8000"

16
compose.wildcard.yml Normal file
View File

@ -0,0 +1,16 @@
---
version: "3.8"
services:
app:
secrets:
- ssl_cert
- ssl_key
secrets:
ssl_cert:
name: ${STACK_NAME}_ssl_cert_${SECRET_WILDCARD_CERT_VERSION}
external: true
ssl_key:
name: ${STACK_NAME}_ssl_key_${SECRET_WILDCARD_KEY_VERSION}
external: true

View File

@ -1,7 +1,9 @@
---
version: "3.8"
services:
app:
image: "traefik:v2.4.11"
image: "traefik:v2.11.0"
# Note(decentral1se): *please do not* add any additional ports here.
# Doing so could break new installs with port conflicts. Please use
# the usual `compose.$app.yml` approach for any additional ports
@ -11,6 +13,7 @@ services:
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "letsencrypt:/etc/letsencrypt"
- "file-providers:/etc/traefik/file-providers"
configs:
- source: traefik_yml
target: /etc/traefik/traefik.yml
@ -38,17 +41,19 @@ services:
order: start-first
labels:
- "traefik.enable=true"
- "traefik.http.services.traefik.loadbalancer.server.port=web"
- "traefik.http.routers.traefik.rule=Host(`${DOMAIN}`)"
- "traefik.http.routers.traefik.entrypoints=web-secure"
- "traefik.http.routers.traefik.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.routers.traefik.tls.options=default@file"
- "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.routers.traefik.middlewares=security@file"
- "coop-cloud.${STACK_NAME}.app.version=v2.4.9-be23e1f6"
- "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=web"
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`)"
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.routers.${STACK_NAME}.service=api@internal"
- "traefik.http.routers.${STACK_NAME}.middlewares=security@file"
- "coop-cloud.${STACK_NAME}.version=2.6.0+v2.11.0"
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
networks:
proxy:
external: true
configs:
traefik_yml:
name: ${STACK_NAME}_traefik_yml_${TRAEFIK_YML_VERSION}
@ -62,5 +67,7 @@ configs:
name: ${STACK_NAME}_entrypoint_${ENTRYPOINT_VERSION}
file: entrypoint.sh.tmpl
template_driver: golang
volumes:
letsencrypt:
file-providers:

View File

@ -1,18 +1,43 @@
---
http:
middlewares:
{{ if eq (env "CUSTOM_ERRORS") "1" }}
error:
plugin:
traefik-error-page:
debug: "true"
contentsOnly: "false"
contentsOnlyMatch: "Bad Gateway"
query: /{status}.html
service: http://{{ env "STACK_NAME" }}_errors:8080
status:
- 502
{{ end }}
{{ if eq (env "KEYCLOAK_MIDDLEWARE_ENABLED") "1" }}
keycloak:
forwardAuth:
address: "http://traefik-forward-auth:4181"
address: "http://{{ env "KEYCLOAK_TFA_SERVICE" }}:4181"
trustForwardHeader: true
authResponseHeaders:
- X-Forwarded-User
{{ end }}
{{ if eq (env "KEYCLOAK_MIDDLEWARE_2_ENABLED") "1" }}
keycloak2:
forwardAuth:
address: "http://{{ env "KEYCLOAK_TFA_SERVICE_2" }}:4181"
trustForwardHeader: true
authResponseHeaders:
- X-Forwarded-User
{{ end }}
{{ if eq (env "BASIC_AUTH") "1" }}
basicauth:
basicAuth:
usersFile: "/run/secrets/usersfile"
{{ end }}
security:
headers:
frameDeny: true
sslRedirect: true
browserXssFilter: true
contentTypeNosniff: true
stsIncludeSubdomains: true
@ -32,3 +57,8 @@ tls:
- CurveP521
- CurveP384
sniStrict: true
{{ if eq (env "WILDCARDS_ENABLED") "1" }}
certificates:
- certFile: /run/secrets/ssl_cert
keyFile: /run/secrets/ssl_key
{{ end }}

View File

@ -1,6 +0,0 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:base"
]
}

View File

@ -8,8 +8,14 @@ providers:
exposedByDefault: false
network: proxy
swarmMode: true
{{ if eq (env "FILE_PROVIDER_DIRECTORY_ENABLED") "1" }}
file:
directory: /etc/traefik/file-providers
watch: true
{{ else }}
file:
filename: /etc/traefik/file-provider.yml
{{ end }}
api:
dashboard: {{ env "DASHBOARD_ENABLED" }}
@ -18,10 +24,6 @@ api:
entrypoints:
web:
address: ":80"
http:
redirections:
entryPoint:
to: web-secure
web-secure:
address: ":443"
{{ if eq (env "GITEA_SSH_ENABLED") "1" }}
@ -40,6 +42,10 @@ entrypoints:
peertube-rtmp:
address: ":1935"
{{ end }}
{{ if eq (env "WEB_ALT_ENABLED") "1" }}
web-alt:
address: ":8000"
{{ end }}
{{ if eq (env "SSB_MUXRPC_ENABLED") "1" }}
ssb-muxrpc:
address: ":8008"
@ -54,9 +60,20 @@ entrypoints:
mumble-udp:
address: ":64738/udp"
{{ end }}
{{ if eq (env "COMPY_ENABLED") "1" }}
compy:
address: ":9999"
{{ end }}
{{ if eq (env "METRICS_ENABLED") "1" }}
metrics:
address: ":8082"
http:
middlewares:
- basicauth@file
{{ end }}
{{ if eq (env "MATRIX_FEDERATION_ENABLED") "1" }}
matrix-federation:
address: ":9001"
{{ end }}
ping:
@ -66,6 +83,8 @@ ping:
metrics:
prometheus:
entryPoint: metrics
addRoutersLabels: true
addServicesLabels: true
{{ end }}
certificatesResolvers:
@ -94,5 +113,12 @@ certificatesResolvers:
provider: {{ (env "LETS_ENCRYPT_DNS_CHALLENGE_PROVIDER") }}
resolvers:
- "1.1.1.1:53"
- "8.8.8.8:53"
- "9.9.9.9:53"
{{ end }}
{{ if eq (env "CUSTOM_ERRORS") "1" }}
experimental:
localplugins:
traefik-error-page:
moduleName: "github.com/3-w-c/traefik-error-page"
{{ end }}