name: firecrawl x-common-service: &common-service build: apps/api networks: - backend environment: - REDIS_URL=${REDIS_URL:-redis://redis:6379} - REDIS_RATE_LIMIT_URL=${REDIS_URL:-redis://redis:6379} - PLAYWRIGHT_MICROSERVICE_URL=${PLAYWRIGHT_MICROSERVICE_URL:-http://playwright-service:3000} - USE_DB_AUTHENTICATION=${USE_DB_AUTHENTICATION} - PORT=${PORT:-3002} - NUM_WORKERS_PER_QUEUE=${NUM_WORKERS_PER_QUEUE} - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_BASE_URL=${OPENAI_BASE_URL} - MODEL_NAME=${MODEL_NAME:-gpt-4o} - SLACK_WEBHOOK_URL=${SLACK_WEBHOOK_URL} - SERPER_API_KEY=${SERPER_API_KEY} - LLAMAPARSE_API_KEY=${LLAMAPARSE_API_KEY} - LOGTAIL_KEY=${LOGTAIL_KEY} - BULL_AUTH_KEY=${BULL_AUTH_KEY} - TEST_API_KEY=${TEST_API_KEY} - POSTHOG_API_KEY=${POSTHOG_API_KEY} - POSTHOG_HOST=${POSTHOG_HOST} - SUPABASE_ANON_TOKEN=${SUPABASE_ANON_TOKEN} - SUPABASE_URL=${SUPABASE_URL} - SUPABASE_SERVICE_TOKEN=${SUPABASE_SERVICE_TOKEN} - SCRAPING_BEE_API_KEY=${SCRAPING_BEE_API_KEY} - HOST=${HOST:-0.0.0.0} - SELF_HOSTED_WEBHOOK_URL=${SELF_HOSTED_WEBHOOK_URL} - LOGGING_LEVEL=${LOGGING_LEVEL} extra_hosts: - "host.docker.internal:host-gateway" services: playwright-service: build: apps/playwright-service environment: - PORT=3000 - PROXY_SERVER=${PROXY_SERVER} - PROXY_USERNAME=${PROXY_USERNAME} - PROXY_PASSWORD=${PROXY_PASSWORD} - BLOCK_MEDIA=${BLOCK_MEDIA} networks: - backend api: <<: *common-service depends_on: - redis - playwright-service ports: - "3002:3002" command: [ "pnpm", "run", "start:production" ] worker: <<: *common-service depends_on: - redis - playwright-service - api command: [ "pnpm", "run", "workers" ] redis: image: redis:alpine networks: - backend command: redis-server --bind 0.0.0.0 networks: backend: driver: bridge