name: firecrawl x-common-service: &common-service # NOTE: If you want to build the service locally, # uncomment the build: statement and comment out the image: statement # image: ghcr.io/mendableai/firecrawl build: apps/api ulimits: nofile: soft: 65535 hard: 65535 networks: - backend extra_hosts: - "host.docker.internal:host-gateway" x-common-env: &common-env 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/scrape} USE_DB_AUTHENTICATION: ${USE_DB_AUTHENTICATION} OPENAI_API_KEY: ${OPENAI_API_KEY} OPENAI_BASE_URL: ${OPENAI_BASE_URL} MODEL_NAME: ${MODEL_NAME} MODEL_EMBEDDING_NAME: ${MODEL_EMBEDDING_NAME} OLLAMA_BASE_URL: ${OLLAMA_BASE_URL} SLACK_WEBHOOK_URL: ${SLACK_WEBHOOK_URL} 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} SELF_HOSTED_WEBHOOK_URL: ${SELF_HOSTED_WEBHOOK_URL} SERPER_API_KEY: ${SERPER_API_KEY} SEARCHAPI_API_KEY: ${SEARCHAPI_API_KEY} LOGGING_LEVEL: ${LOGGING_LEVEL} PROXY_SERVER: ${PROXY_SERVER} PROXY_USERNAME: ${PROXY_USERNAME} PROXY_PASSWORD: ${PROXY_PASSWORD} SEARXNG_ENDPOINT: ${SEARXNG_ENDPOINT} SEARXNG_ENGINES: ${SEARXNG_ENGINES} SEARXNG_CATEGORIES: ${SEARXNG_CATEGORIES} services: playwright-service: build: apps/playwright-service-ts environment: PORT: 3000 PROXY_SERVER: ${PROXY_SERVER} PROXY_USERNAME: ${PROXY_USERNAME} PROXY_PASSWORD: ${PROXY_PASSWORD} BLOCK_MEDIA: ${BLOCK_MEDIA} networks: - backend api: <<: *common-service environment: <<: *common-env HOST: "0.0.0.0" PORT: ${INTERNAL_PORT:-3002} FLY_PROCESS_GROUP: app depends_on: - redis - playwright-service ports: - "${PORT:-3002}:${INTERNAL_PORT:-3002}" command: [ "pnpm", "run", "start:production" ] worker: <<: *common-service environment: <<: *common-env FLY_PROCESS_GROUP: worker depends_on: - redis - playwright-service - api command: [ "pnpm", "run", "workers" ] redis: # NOTE: If you want to use Valkey (open source) instead of Redis (source available), # uncomment the Valkey statement and comment out the Redis statement. # Using Valkey with Firecrawl is untested and not guaranteed to work. Use with caution. image: redis:alpine # image: valkey/valkey:alpine networks: - backend command: redis-server --bind 0.0.0.0 networks: backend: driver: bridge