Ctrl K
ComunidadGuías…

docker-compose.yml

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
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