services: changedetection: image: "ghcr.io/dgtlmoon/changedetection.io:{{ changedetection.version }}" #0.55.3 volumes: - ./data/changedetection:/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.url }}`) && PathPrefix(`/preview`)" traefik.http.routers.changedetection-diff.priority: 100 traefik.http.routers.changedetection-diff.service: changedetection traefik.http.routers.changedetection.rule: "Host(`{{ changedetection.url }}`) && PathPrefix(`/`)" traefik.http.routers.changedetection.tls: "true" traefik.http.routers.changedetection.tls.certresolver: hetzner traefik.http.routers.changedetection.priority: 90 traefik.http.routers.changedetection.service: changedetection {% if changedetection.oidc.forwardauth_url | length > 0 -%} traefik.http.routers.changedetection.middlewares: changedetection-auth traefik.http.middlewares.changedetection-auth.forwardauth.address: "{{ changedetection.oidc.forwardauth_url }}" 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 {% endif %} 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