DocIngest uses Docker Compose for local infrastructure. Pick the mode that matches what you want to run.
Use this when you want the local crawl/search stack in one command:
docker compose --profile firecrawl --profile tools up -dThis starts:
- Redis for DocIngest search/cache
- Redis Commander at
http://localhost:8082 - Firecrawl API at
http://localhost:3002 - Dedicated Firecrawl Redis for crawl queues and rate limiting
- Firecrawl Playwright service
- Firecrawl RabbitMQ
- Firecrawl Postgres
Use these backend env vars:
FIRECRAWL_API_URL=http://localhost:3002/v1
REDIS_HOST=localhost
REDIS_PORT=6380Then run the DocIngest app:
cd server
npm startnpm run dev-startUse this when you are using hosted Firecrawl or another crawl provider, but still want local fast search/cache:
docker compose up -d redisUse these backend env vars:
REDIS_HOST=localhost
REDIS_PORT=6380Use this when you want to inspect Redis locally:
docker compose --profile tools up -dOpen:
http://localhost:8082
Use this when you want the full crawl/search stack but do not need Redis Commander:
docker compose --profile firecrawl up -dUse this when Redis and Firecrawl are already running somewhere else:
REDIS_HOST=your-redis-host
REDIS_PORT=6379
REDIS_PASSWORD=your-password
FIRECRAWL_API_URL=https://api.firecrawl.dev/v1
FIRECRAWL_API_KEY=fc-your-api-keydocker compose --profile firecrawl --profile tools downAdd -v only when you intentionally want to remove local Redis and Firecrawl Postgres data:
docker compose --profile firecrawl --profile tools down -vThe Compose stack uses two Redis services on purpose:
redisstores DocIngest autocomplete, search, and cached docs with anallkeys-lrupolicy.firecrawl-redisstores Firecrawl queue/rate-limit data with anoevictionpolicy.
Keeping them separate prevents crawler queue keys from being evicted by search/cache pressure and keeps DocIngest search cache tuning independent from Firecrawl job durability.