diff --git a/abra.sh b/abra.sh index 550ac6b..aca7209 100644 --- a/abra.sh +++ b/abra.sh @@ -1,3 +1,3 @@ -export TRAEFIK_YML_VERSION=v19 -export FILE_PROVIDER_YML_VERSION=v9 +export TRAEFIK_YML_VERSION=v20 +export FILE_PROVIDER_YML_VERSION=v10 export ENTRYPOINT_VERSION=v2 diff --git a/compose.errors.yml b/compose.errors.yml new file mode 100644 index 0000000..c8e285b --- /dev/null +++ b/compose.errors.yml @@ -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: diff --git a/file-provider.yml.tmpl b/file-provider.yml.tmpl index aa827bd..7cb8300 100644 --- a/file-provider.yml.tmpl +++ b/file-provider.yml.tmpl @@ -1,6 +1,19 @@ --- + 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: @@ -48,4 +61,4 @@ tls: certificates: - certFile: /run/secrets/ssl_cert keyFile: /run/secrets/ssl_key - {{ end }} \ No newline at end of file + {{ end }} diff --git a/traefik.yml.tmpl b/traefik.yml.tmpl index 3f6aeab..a7d4791 100644 --- a/traefik.yml.tmpl +++ b/traefik.yml.tmpl @@ -115,3 +115,10 @@ certificatesResolvers: - "1.1.1.1: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 }}