Monitor websites uptime using Cloudflare Workers
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105services: migrate: image: dmarcosm/uptime-migrate:latest platform: linux/amd64 environment: DATABASE_URL: ${DATABASE_URL:?DATABASE_URL must be set in .env} init: true user: node restart: 'no' stop_grace_period: 60s security_opt: [no-new-privileges:true] cap_drop: [ALL] read_only: true tmpfs: [/tmp] api: image: dmarcosm/uptime-api:latest platform: linux/amd64 environment: DATABASE_URL: ${DATABASE_URL:?DATABASE_URL must be set in .env} REGIONS_LIST: ${REGIONS_LIST:-us-east,us-west,canada-central,eu-west,eu-north,eu-south,asia,asia-east,asia-south} API_HOST: ${API_HOST:-0.0.0.0} API_PORT: 3000 SESSION_COOKIE_SECURE: ${SESSION_COOKIE_SECURE:-false} ADMIN_EMAIL: ${ADMIN_EMAIL:-admin@example.com} ADMIN_PASSWORD_HASH: ${ADMIN_PASSWORD_HASH:?ADMIN_PASSWORD_HASH must be set in .env} SESSION_SECRET: ${SESSION_SECRET:?SESSION_SECRET must be set in .env} SESSION_TTL_SECONDS: ${SESSION_TTL_SECONDS:-604800} depends_on: migrate: condition: service_completed_successfully init: true user: node restart: unless-stopped stop_grace_period: 60s security_opt: [no-new-privileges:true] cap_drop: [ALL] read_only: true tmpfs: [/tmp] ports: - '127.0.0.1:${API_PORT:-3000}:3000' healthcheck: test: [ 'CMD', 'node', '-e', "fetch('http://127.0.0.1:3000/health').then(r => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1))", ] interval: 10s timeout: 3s retries: 6 start_period: 15s scheduler: image: dmarcosm/uptime-scheduler:latest platform: linux/amd64 environment: DATABASE_URL: ${DATABASE_URL:?DATABASE_URL must be set in .env} REGIONS_LIST: ${REGIONS_LIST:-us-east,us-west,canada-central,eu-west,eu-north,eu-south,asia,asia-east,asia-south} WORKERS_URL_DOMAIN: ${WORKERS_URL_DOMAIN:?WORKERS_URL_DOMAIN must be set in .env} PROBE_SIGNING_SECRET: ${PROBE_SIGNING_SECRET:?PROBE_SIGNING_SECRET must be set in .env} PROBE_REQUEST_MAX_SKEW_SECONDS: ${PROBE_REQUEST_MAX_SKEW_SECONDS:-60} SCHEDULER_POLL_INTERVAL_MS: ${SCHEDULER_POLL_INTERVAL_MS:-1000} SCHEDULER_MAX_CONCURRENT_PROBES: ${SCHEDULER_MAX_CONCURRENT_PROBES:-32} SCHEDULER_INSTANCE_ID: ${SCHEDULER_INSTANCE_ID:-compose-scheduler-1} depends_on: migrate: condition: service_completed_successfully init: true user: node restart: unless-stopped stop_grace_period: 60s security_opt: [no-new-privileges:true] cap_drop: [ALL] read_only: true tmpfs: [/tmp]
web: image: dmarcosm/uptime-web:latest platform: linux/amd64 environment: UPTIME_API_PROXY_TARGET: http://api:3000 depends_on: api: condition: service_healthy init: true user: node restart: unless-stopped stop_grace_period: 15s security_opt: [no-new-privileges:true] cap_drop: [ALL] ports: - '127.0.0.1:5176:5176' healthcheck: test: [ 'CMD', 'node', '-e', "fetch('http://127.0.0.1:5176').then(r => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1))", ] interval: 10s timeout: 3s retries: 6 start_period: 10s