changedetection/compose.yml
2026-04-28 15:02:20 +02:00

80 lines
2.9 KiB
YAML

services:
changedetection:
image: ghcr.io/dgtlmoon/changedetection.io:0.55.3
hostname: changedetection
volumes:
- changedetection-data:/datastore
# Configurable proxy list support, see https://github.com/dgtlmoon/changedetection.io/wiki/Proxy-configuration#proxy-list-support
# - ./proxies.json:/datastore/proxies.json
networks:
- internal
- proxy
environment:
- PORT=5000
- LOGGER_LEVEL=INFO
- PLAYWRIGHT_DRIVER_URL=ws://browser-sockpuppet-chrome:3000
- BASE_URL=http://localhost:5000
- HIDE_REFERER=true
- FETCH_WORKERS=10
- MINIMUM_SECONDS_RECHECK_TIME=10
- ALLOW_FILE_URI=False
- DISABLE_VERSION_CHECK=true
- TZ=Europe/Berlin
- LC_ALL=UTF-8
- SCREENSHOT_MAX_HEIGHT=16000
- LISTEN_HOST=0.0.0.0
- ALLOW_IANA_RESTRICTED_ADDRESSES=true
labels:
traefik.enable: true
traefik.http.services.changedetection.loadbalancer.server.port: "5000"
traefik.http.services.changedetection.loadbalancer.passhostheader: "true"
traefik.http.routers.changedetection-diff.rule: "Host(`changedetection.urmel.de`) && PathPrefix(`/preview`)"
traefik.http.routers.changedetection-diff.priority: 100
traefik.http.routers.changedetection-diff.service: changedetection
traefik.http.routers.changedetection.rule: "Host(`changedetection.urmel.de`) && PathPrefix(`/`)"
traefik.http.routers.changedetection.tls: "true"
traefik.http.routers.changedetection.tls.certresolver: hetzner
traefik.http.routers.changedetection.priority: 90
traefik.http.routers.changedetection.middlewares: changedetection-auth
traefik.http.routers.changedetection.service: changedetection
traefik.http.middlewares.changedetection-auth.forwardauth.address: "http://authentik-proxy:9000/outpost.goauthentik.io/auth/traefik"
traefik.http.middlewares.changedetection-auth.forwardauth.trustForwardHeader: true
traefik.http.middlewares.changedetection-auth.forwardauth.authResponseHeaders: X-authentik-username,X-authentik-groups,X-authentik-entitlements,X-authentik-email,X-authentik-name
restart: unless-stopped
depends_on:
browser-sockpuppet-chrome:
condition: service_started
browser-sockpuppet-chrome:
hostname: browser-sockpuppet-chrome
image: dgtlmoon/sockpuppetbrowser:0.0.3
networks:
- internal
# cap_add:
# - SYS_ADMIN
## SYS_ADMIN might be too much, but it can be needed on your platform https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#running-puppeteer-on-gitlabci
restart: unless-stopped
environment:
- SCREEN_WIDTH=1920
- SCREEN_HEIGHT=1600
- SCREEN_DEPTH=16
- MAX_CONCURRENT_CHROME_PROCESSES=10
networks:
internal:
proxy:
name: traefik_exposed
external: true
volumes:
changedetection-data: