services: cve-monitor: build: . container_name: cve-monitor restart: unless-stopped ports: - "${PORT:-5000}:5000" volumes: - ./cve_db:/app/cve_db - ./logs:/app/logs environment: - WORKERS=${WORKERS:-4} - WORKER_TIMEOUT=${WORKER_TIMEOUT:-120} - PORT=5000 - DATABASE_PATH=/app/cve_db/cve_cache.db - LOG_LEVEL=${LOG_LEVEL:-INFO} - NVD_API_KEY=${NVD_API_KEY:-} - GITHUB_TOKEN=${GITHUB_TOKEN:-} env_file: - .env command: app networks: - cve-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:5000/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s cve-monitor-scheduler: build: . container_name: cve-monitor-scheduler restart: unless-stopped volumes: - ./cve_db:/app/cve_db - ./logs:/app/logs environment: - DATABASE_PATH=/app/cve_db/cve_cache.db - LOG_LEVEL=${LOG_LEVEL:-INFO} - ENABLE_AUTO_UPDATE=${ENABLE_AUTO_UPDATE:-True} - UPDATE_INTERVAL_HOURS=${UPDATE_INTERVAL_HOURS:-24} - INITIAL_LOOKBACK_DAYS=${INITIAL_LOOKBACK_DAYS:-365} - NVD_API_KEY=${NVD_API_KEY:-} - GITHUB_TOKEN=${GITHUB_TOKEN:-} env_file: - .env command: scheduler depends_on: - cve-monitor networks: - cve-network healthcheck: test: ["CMD", "test", "-f", "/app/cve_db/cve_cache.db"] interval: 15s timeout: 5s retries: 10 start_period: 60s cve-monitor-discord: build: . container_name: cve-monitor-discord restart: unless-stopped volumes: - ./cve_db:/app/cve_db - ./logs:/app/logs environment: - DATABASE_PATH=/app/cve_db/cve_cache.db - LOG_LEVEL=${LOG_LEVEL:-INFO} - DISCORD_BOT_TOKEN=${DISCORD_BOT_TOKEN} - DISCORD_CHANNEL_ID=${DISCORD_CHANNEL_ID} - DISCORD_CHECK_INTERVAL=${DISCORD_CHECK_INTERVAL:-60} - DISCORD_MIN_CVSS=${DISCORD_MIN_CVSS:-7.0} - DISCORD_NOTIFY_CRITICAL=${DISCORD_NOTIFY_CRITICAL:-True} - DISCORD_NOTIFY_HIGH=${DISCORD_NOTIFY_HIGH:-True} env_file: - .env command: discord depends_on: cve-monitor-scheduler: condition: service_healthy networks: - cve-network networks: cve-network: driver: bridge