- Configure dockcheck for automatic updates instead of check-only mode - Add dockcheck update labels to Calibre and Changedetection services - Enable OnlyLabel and AutoMode for targeted container management 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			138 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Django/Jinja
		
	
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Django/Jinja
		
	
	
	
	
	
version: '3.2'
 | 
						|
services:
 | 
						|
    changedetection:
 | 
						|
      image: ghcr.io/dgtlmoon/changedetection.io
 | 
						|
      container_name: changedetection
 | 
						|
      hostname: changedetection
 | 
						|
      labels:
 | 
						|
        glance.name: Changedetection
 | 
						|
        glance.icon: si:watchtower
 | 
						|
        glance.url: https://{{ subdomains.watcher }}/
 | 
						|
        glance.description: Changedetection
 | 
						|
        glance.id: changedetection
 | 
						|
        mag37.dockcheck.update: true
 | 
						|
      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
 | 
						|
 | 
						|
      environment:
 | 
						|
  #        Default listening port, can also be changed with the -p option
 | 
						|
  #      - PORT=5000
 | 
						|
  #
 | 
						|
  #        Log levels are in descending order. (TRACE is the most detailed one)
 | 
						|
  #        Log output levels: TRACE, DEBUG(default), INFO, SUCCESS, WARNING, ERROR, CRITICAL
 | 
						|
  #      - LOGGER_LEVEL=TRACE
 | 
						|
  #
 | 
						|
  #       Alternative WebDriver/selenium URL, do not use "'s or 's!
 | 
						|
  #      - WEBDRIVER_URL=http://browser-chrome:4444/wd/hub
 | 
						|
  #
 | 
						|
  #       WebDriver proxy settings webdriver_proxyType, webdriver_ftpProxy, webdriver_noProxy,
 | 
						|
  #                                webdriver_proxyAutoconfigUrl, webdriver_autodetect,
 | 
						|
  #                                webdriver_socksProxy, webdriver_socksUsername, webdriver_socksVersion, webdriver_socksPassword
 | 
						|
  #
 | 
						|
  #             https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common.proxy
 | 
						|
  #
 | 
						|
  #       Alternative target "Chrome" Playwright URL, do not use "'s or 's!
 | 
						|
  #       "Playwright" is a driver/librarythat allows changedetection to talk to a Chrome or similar browser.
 | 
						|
        - PLAYWRIGHT_DRIVER_URL=ws://sockpuppetbrowser:3000
 | 
						|
  #
 | 
						|
  #       Playwright proxy settings playwright_proxy_server, playwright_proxy_bypass, playwright_proxy_username, playwright_proxy_password
 | 
						|
  #
 | 
						|
  #             https://playwright.dev/python/docs/api/class-browsertype#browser-type-launch-option-proxy
 | 
						|
  #
 | 
						|
  #        Plain requests - proxy support example.
 | 
						|
  #      - HTTP_PROXY=socks5h://10.10.1.10:1080
 | 
						|
  #      - HTTPS_PROXY=socks5h://10.10.1.10:1080
 | 
						|
  #
 | 
						|
  #        An exclude list (useful for notification URLs above) can be specified by with
 | 
						|
  #      - NO_PROXY="localhost,192.168.0.0/24"
 | 
						|
  #
 | 
						|
  #        Base URL of your changedetection.io install (Added to the notification alert)
 | 
						|
        - BASE_URL=https://{{ subdomains.watcher }}
 | 
						|
  #        Respect proxy_pass type settings, `proxy_set_header Host "localhost";` and `proxy_set_header X-Forwarded-Prefix /app;`
 | 
						|
  #        More here https://github.com/dgtlmoon/changedetection.io/wiki/Running-changedetection.io-behind-a-reverse-proxy-sub-directory
 | 
						|
  #      - USE_X_SETTINGS=1
 | 
						|
  #
 | 
						|
  #        Hides the `Referer` header so that monitored websites can't see the changedetection.io hostname.
 | 
						|
  #      - HIDE_REFERER=true
 | 
						|
  #        
 | 
						|
  #        Default number of parallel/concurrent fetchers
 | 
						|
  #      - FETCH_WORKERS=10
 | 
						|
  #
 | 
						|
  #        Absolute minimum seconds to recheck, overrides any watch minimum, change to 0 to disable
 | 
						|
  #      - MINIMUM_SECONDS_RECHECK_TIME=3
 | 
						|
  #
 | 
						|
  #        If you want to watch local files file:///path/to/file.txt (careful! security implications!)
 | 
						|
  #      - ALLOW_FILE_URI=False
 | 
						|
  #
 | 
						|
  #        For complete privacy if you don't want to use the 'check version' / telemetry service
 | 
						|
  #      - DISABLE_VERSION_CHECK=true
 | 
						|
  #
 | 
						|
  #        A valid timezone name to run as (for scheduling watch checking) see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
 | 
						|
        - TZ=America/Denver
 | 
						|
  
 | 
						|
      # Comment out ports: when using behind a reverse proxy , enable networks: etc.
 | 
						|
  #    ports:
 | 
						|
  #      - 5000:5000
 | 
						|
      restart: unless-stopped
 | 
						|
      extra_hosts:
 | 
						|
        - "{{ subdomains.gotify }}:{{ docker.hairpin_ip }}"
 | 
						|
 | 
						|
     # Used for fetching pages via WebDriver+Chrome where you need Javascript support.
 | 
						|
     # Now working on arm64 (needs testing on rPi - tested on Oracle ARM instance)
 | 
						|
     # replace image with seleniarm/standalone-chromium:4.0.0-20211213
 | 
						|
     
 | 
						|
     # If WEBDRIVER or PLAYWRIGHT are enabled, changedetection container depends on that
 | 
						|
     # and must wait before starting (substitute "browser-chrome" with "playwright-chrome" if last one is used)
 | 
						|
      depends_on:
 | 
						|
          sockpuppetbrowser:
 | 
						|
             condition: service_started
 | 
						|
 | 
						|
 | 
						|
     # Sockpuppetbrowser is basically chrome wrapped in an API for allowing fast fetching of web-pages.
 | 
						|
     # RECOMMENDED FOR FETCHING PAGES WITH CHROME
 | 
						|
    sockpuppetbrowser:
 | 
						|
        hostname: sockpuppetbrowser
 | 
						|
        labels:
 | 
						|
          glance.parent: changedetection
 | 
						|
          glance.name: Browser
 | 
						|
          mag37.dockcheck.update: true
 | 
						|
        image: dgtlmoon/sockpuppetbrowser:latest
 | 
						|
        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=1024
 | 
						|
            - SCREEN_DEPTH=16
 | 
						|
            - MAX_CONCURRENT_CHROME_PROCESSES=10
 | 
						|
        extra_hosts:
 | 
						|
            - "{{ subdomains.gotify }}:{{ docker.hairpin_ip }}"
 | 
						|
 | 
						|
     # Used for fetching pages via Playwright+Chrome where you need Javascript support.
 | 
						|
     # Note: Works well but is deprecated, does not fetch full page screenshots (doesnt work with Visual Selector)
 | 
						|
     #       Does not report status codes (200, 404, 403) and other issues
 | 
						|
#    browser-chrome:
 | 
						|
#        hostname: browser-chrome
 | 
						|
#        image: selenium/standalone-chrome:4
 | 
						|
#        environment:
 | 
						|
#            - VNC_NO_PASSWORD=1
 | 
						|
#            - SCREEN_WIDTH=1920
 | 
						|
#            - SCREEN_HEIGHT=1080
 | 
						|
#            - SCREEN_DEPTH=24
 | 
						|
#        volumes:
 | 
						|
#            # Workaround to avoid the browser crashing inside a docker container
 | 
						|
#            # See https://github.com/SeleniumHQ/docker-selenium#quick-start
 | 
						|
#            - /dev/shm:/dev/shm
 | 
						|
#        restart: unless-stopped
 | 
						|
 | 
						|
volumes:
 | 
						|
  changedetection-data:
 | 
						|
 | 
						|
networks:
 | 
						|
  default:
 | 
						|
    external: true
 | 
						|
    name: {{ docker.network_name }}
 |