Cant deploy Firecrawl from Docker Compose
trubador
HOBBYOP

4 months ago

I am trying to deploy the attached Docker compose file and it suceeds when doing so on the website but it says I need to deploy it from Cli or Github repo or other means - Is this because it does not support the Docker Compose file and I need to enter the details for the services manually and if so how can I do that?

$10 Bounty

2 Replies

johntday
HOBBY

4 months ago

bitnami removed all redis images from their docker hub: https://hub.docker.com/r/bitnami/redis

Useful railway documentation for using valkey instead of Redis: https://station.railway.com/questions/migrate-from-bitnami-redis-to-valkey-18a794e7


crisog
MODERATOR

4 months ago

I don't suggest keeping this as your main source of deployment config, but I got a some-what working Docker Compose by simplying it a bit. I would suggest wiring the services yourself by manually creating services in Railway using the canvas which is very user-friendly. You can follow the guides in the docs: https://docs.railway.com/guides/services

name: firecrawl

services:
  playwright-service:
    image: ghcr.io/firecrawl/playwright-service:latest
    environment:
      PORT: 3000
      PROXY_SERVER: ${PROXY_SERVER}
      PROXY_USERNAME: ${PROXY_USERNAME}
      PROXY_PASSWORD: ${PROXY_PASSWORD}
      BLOCK_MEDIA: ${BLOCK_MEDIA}

  api:
    image: ghcr.io/firecrawl/firecrawl
    environment:
      REDIS_URL: redis://${{redis.RAILWAY_PRIVATE_DOMAIN}}:6379
      REDIS_RATE_LIMIT_URL: redis://${{redis.RAILWAY_PRIVATE_DOMAIN}}:6379
      PLAYWRIGHT_MICROSERVICE_URL: http://${{playwright-service.RAILWAY_PRIVATE_DOMAIN}}:3000/scrape
      NUQ_DATABASE_URL: postgresql://postgres:postgres@${{postgres.RAILWAY_PRIVATE_DOMAIN}}:5432/postgres
      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}
      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}
      HOST: "0.0.0.0"
      PORT: ${INTERNAL_PORT:-3002}
      EXTRACT_WORKER_PORT: ${EXTRACT_WORKER_PORT:-3004}
      WORKER_PORT: ${WORKER_PORT:-3005}
      ENV: local
    command: node dist/src/harness.js --start-docker

  redis:
    image: redis:alpine
    command: redis-server --bind 0.0.0.0

  postgres:
    image: postgres:alpine
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: postgres

Loading...