Files
docker/traefik/docker-compose.yml
T
git e320ebd247 modified: gitea/docker-compose.yml
modified:   nextcloud/docker-compose.yml
	modified:   passbolt/docker-compose.yml
	modified:   searxng/docker-compose.yml
	modified:   traefik/docker-compose.yml
2025-08-13 19:55:00 +10:00

89 lines
3.4 KiB
YAML

services:
reverse-proxy:
restart: always
# The official v2 Traefik docker image
image: traefik:3
read_only: true
hostname: traefik.lan.ddnsgeek.com
depends_on:
- error-pages
# Enables the web UI and tells Traefik to listen to docker
command:
- "--log.level=INFO"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--certificatesresolvers.myresolver.acme.httpchallenge=true"
- "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.myresolver.acme.email=wayne.bennett@live.com"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
- "--ping=true"
- "--api=true"
- "--api.dashboard=true"
- "--providers.file.filename=/plugins.yaml"
# - "--ping=true"
# - "--ping.entrypoint=web"
ports:
# The HTTP port
- "192.168.2.249:80:80"
- "192.168.2.249:443:443"
volumes:
# So that Traefik can listen to the Docker events
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data/letsencrypt:/letsencrypt:rw
- ./data/plugins.yaml:/plugins.yaml:ro
deploy:
restart_policy:
condition: on-failure
max_attempts: 5
healthcheck:
test: traefik healthcheck --ping
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.rule=Host(`traefik.lan.ddnsgeek.com`)"
- "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.routers.traefik.middlewares=auth, error-pages-middleware"
- "traefik.http.middlewares.auth.basicauth.users=beatzaplenty:$$apr1$$rQ8iCgI4$$Y/u2AttE3tb1sIQwrIGU0."
- "traefik.http.routers.traefik.entrypoints=websecure"
- "traefik.http.routers.traefik.tls.certresolver=myresolver"
- "traefik.http.routers.traefik.tls=true"
- "io.portainer.accesscontrol.public"
networks:
- reverse_proxy
error-pages:
image: tarampampam/error-pages:3 # Using the latest tag is highly discouraged. Please, use tags in X.Y.Z format
read_only: true
environment:
TEMPLATE_NAME: app-down # set the error pages template
hostname: error-pages
restart: always
labels:
- "traefik.enable=true"
# use as "fallback" for any NON-registered services (with priority below normal)
- "traefik.http.routers.error-pages-router.rule=HostRegexp(`{host:.+}`)"
# should say that all of your services work on https
- "traefik.http.routers.error-pages-router.entrypoints=web"
- "traefik.http.routers.error-pages-router.middlewares=error-pages-middleware"
# "errors" middleware settings
- "traefik.http.middlewares.error-pages-middleware.errors.status=400-599"
- "traefik.http.middlewares.error-pages-middleware.errors.service=error-pages-service"
- "traefik.http.middlewares.error-pages-middleware.errors.query=/{status}.html"
# define service properties
- "traefik.http.services.error-pages-service.loadbalancer.server.port=8080"
- "io.portainer.accesscontrol.public"
deploy:
restart_policy:
condition: on-failure
max_attempts: 5
networks:
- reverse_proxy
networks:
reverse_proxy:
driver: bridge