# ChangeDetection.io — watch.manohargupta.com # Watches pages with no RSS: CERC orders, MNRE notifications, SECI tenders. # Browserless sidecar handles JS-rendered government portals (Angular/React). # Auth: bcrypt basic auth via Traefik (hash hardcoded -- env vars don't work in labels). # Memory budget: ~700 MB total (CD ~150 MB + browser sidecar ~550 MB). services: browser: image: dgtlmoon/sockpuppetbrowser:latest restart: unless-stopped cap_add: - SYS_ADMIN networks: - cd_internal environment: - SCREEN_WIDTH=1920 - SCREEN_HEIGHT=1080 changedetection: image: ghcr.io/dgtlmoon/changedetection.io:latest restart: unless-stopped depends_on: - browser environment: PLAYWRIGHT_DRIVER_URL: ws://browser:3000 BASE_URL: https://watch.manohargupta.com TZ: Asia/Kolkata volumes: - cd_data:/datastore networks: - dokploy-network - cd_internal labels: - "traefik.enable=true" - "traefik.docker.network=dokploy-network" - "traefik.http.routers.changedetection.rule=Host(`watch.manohargupta.com`)" - "traefik.http.routers.changedetection.entrypoints=websecure" - "traefik.http.routers.changedetection.tls.certresolver=letsencrypt" - "traefik.http.services.changedetection.loadbalancer.server.port=5000" - "traefik.http.middlewares.cd-auth.basicauth.users=manohar:$$2y$$05$$KMo07kusNXiLmQ8orl6HseY5KyVof74gw6Z.7MSFtqYhuNX0otSJm" - "traefik.http.routers.changedetection.middlewares=cd-auth@docker" deploy: labels: - "traefik.enable=true" - "traefik.docker.network=dokploy-network" - "traefik.http.routers.changedetection.rule=Host(`watch.manohargupta.com`)" - "traefik.http.routers.changedetection.entrypoints=websecure" - "traefik.http.routers.changedetection.tls.certresolver=letsencrypt" - "traefik.http.services.changedetection.loadbalancer.server.port=5000" - "traefik.http.middlewares.cd-auth.basicauth.users=manohar:$$2y$$05$$KMo07kusNXiLmQ8orl6HseY5KyVof74gw6Z.7MSFtqYhuNX0otSJm" - "traefik.http.routers.changedetection.middlewares=cd-auth@docker" volumes: cd_data: networks: dokploy-network: external: true cd_internal: driver: bridge