docker-compose.yml
Rama master · réplica de lectura del repositorio original.
services:
statusscout-mongodb:
image: mongo:7
container_name: statusscout-mongodb
restart: always
ports:
- "27017:27017"
volumes:
- mongo_data:/data/db
networks:
- statusscout-net
statusscout-redis:
image: redis:7
container_name: statusscout-redis
restart: always
ports:
- "6379:6379"
volumes:
- redis_data:/data
networks:
- statusscout-net
statusscout-api:
build:
context: .
dockerfile: packages/api/Dockerfile
container_name: statusscout-api
restart: always
ports:
- "${API_PORT:-4000}:4000"
networks:
- statusscout-net
environment:
- FRONTEND_URL=${FRONTEND_URL:-}
- API_URL=${API_URL}
- APP_URL=${APP_URL}
- API_KEY=${API_KEY}
- MONGODB_URI=${MONGODB_URI}
- SESSION_SECRET=${SESSION_SECRET}
- REDIS_HOST=${REDIS_HOST}
- REDIS_PORT=${REDIS_PORT}
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
- SENDER_EMAIL=${SENDER_EMAIL}
- PASSWORD_HASH_SECRET=${PASSWORD_HASH_SECRET}
- BIRD_WORKSPACE_ID=${BIRD_WORKSPACE_ID}
- BIRD_API_KEY=${BIRD_API_KEY}
- BIRD_CHANNEL_ID=${BIRD_CHANNEL_ID}
- BIRD_NAVIGATOR_ID=${BIRD_NAVIGATOR_ID}
- STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY:-}
- STRIPE_MONTHLY_PRICE_ID=${STRIPE_MONTHLY_PRICE_ID:-}
- STRIPE_YEARLY_PRICE_ID=${STRIPE_YEARLY_PRICE_ID:-}
- TURNSTILE_SECRET_KEY=${TURNSTILE_SECRET_KEY:-}
- DISABLE_REGISTRATION=${DISABLE_REGISTRATION}
depends_on:
- statusscout-mongodb
- statusscout-redis
statusscout-cron:
build:
context: .
dockerfile: packages/cron/Dockerfile
container_name: statusscout-cron
restart: always
networks:
- statusscout-net
environment:
- MONGODB_URI=${MONGODB_URI}
- REDIS_HOST=${REDIS_HOST}
- REDIS_PORT=${REDIS_PORT}
- API_KEY=${API_KEY}
- API_URL=${API_URL}
- SEND_EMAILS=${SEND_EMAILS:-}
depends_on:
- statusscout-mongodb
- statusscout-redis
statusscout-frontend:
build:
context: .
dockerfile: packages/frontend/Dockerfile
args:
VITE_BASE_URL: ${APP_URL}
VITE_API_URL: ${API_URL}
VITE_DISABLE_REGISTRATION: ${DISABLE_REGISTRATION}
VITE_ENABLE_ANALYTICS: ${VITE_ENABLE_ANALYTICS:-}
VITE_STRIPE_PUBLISHABLE_KEY: ${VITE_STRIPE_PUBLISHABLE_KEY:-}
VITE_GTM_ID: ${VITE_GTM_ID:-}
VITE_GTM_CONVERSION: ${VITE_GTM_CONVERSION:-}
VITE_GTM_REGISTER: ${VITE_GTM_REGISTER:-}
container_name: statusscout-frontend
restart: always
ports:
- "${FRONTEND_PORT:-3000}:80"
networks:
- statusscout-net
statusscout-worker:
build:
context: .
dockerfile: packages/worker/Dockerfile
container_name: statusscout-worker
restart: always
stop_signal: SIGTERM
stop_grace_period: 60s # give the container time to finish jobs
networks:
- statusscout-net
environment:
- MONGODB_URI=${MONGODB_URI}
- GOOGLE_PAGESPEED_API_KEY=${GOOGLE_PAGESPEED_API_KEY}
- REDIS_HOST=${REDIS_HOST}
- REDIS_PORT=${REDIS_PORT}
- CONCURRENT_RUNS=${CONCURRENT_RUNS}
- API_KEY=${API_KEY}
- API_URL=${API_URL}
- APP_URL=${APP_URL}
depends_on:
- statusscout-mongodb
- statusscout-redis
volumes:
mongo_data:
redis_data:
networks:
statusscout-net:
name: statusscout-net