infra/changedetection.compose.yml

61 lines
2.2 KiB
YAML

# 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