102 lines
2.8 KiB
YAML
102 lines
2.8 KiB
YAML
name: hypothesis-machine
|
|
|
|
x-firecrawl-env: &firecrawl-env
|
|
REDIS_URL: redis://redis:6379
|
|
REDIS_RATE_LIMIT_URL: redis://redis:6379
|
|
PLAYWRIGHT_MICROSERVICE_URL: http://playwright-service:3000/scrape
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_DB: postgres
|
|
POSTGRES_HOST: nuq-postgres
|
|
POSTGRES_PORT: "5432"
|
|
USE_DB_AUTHENTICATION: "false"
|
|
NUQ_RABBITMQ_URL: amqp://rabbitmq:5672
|
|
ENV: local
|
|
HOST: 0.0.0.0
|
|
PORT: "3002"
|
|
SEARXNG_ENDPOINT: http://searxng:8080
|
|
NUM_WORKERS_PER_QUEUE: "2"
|
|
CRAWL_CONCURRENT_REQUESTS: "4"
|
|
MAX_CONCURRENT_JOBS: "3"
|
|
|
|
services:
|
|
searxng:
|
|
image: searxng/searxng:latest
|
|
restart: unless-stopped
|
|
ports: ["127.0.0.1:${SEARXNG_PORT:-8888}:8080"]
|
|
volumes: ["./searxng/settings.yml:/etc/searxng/settings.yml:ro"]
|
|
environment:
|
|
SEARXNG_BASE_URL: http://localhost:8080/
|
|
security_opt: ["no-new-privileges:true"]
|
|
cap_drop: ["ALL"]
|
|
cap_add: ["CHOWN", "SETGID", "SETUID"]
|
|
networks: [research]
|
|
|
|
firecrawl:
|
|
image: ghcr.io/firecrawl/firecrawl:latest
|
|
restart: unless-stopped
|
|
ports: ["127.0.0.1:3002:3002"]
|
|
environment: *firecrawl-env
|
|
command: node dist/src/harness.js --start-docker
|
|
depends_on:
|
|
redis: { condition: service_started }
|
|
rabbitmq: { condition: service_healthy }
|
|
nuq-postgres: { condition: service_started }
|
|
playwright-service: { condition: service_started }
|
|
security_opt: ["no-new-privileges:true"]
|
|
cap_drop: ["ALL"]
|
|
networks: [research, firecrawl-backend]
|
|
|
|
playwright-service:
|
|
image: ghcr.io/firecrawl/playwright-service:latest
|
|
restart: unless-stopped
|
|
environment:
|
|
PORT: "3000"
|
|
ALLOW_LOCAL_WEBHOOKS: "false"
|
|
BLOCK_MEDIA: "true"
|
|
MAX_CONCURRENT_PAGES: "4"
|
|
shm_size: 1gb
|
|
security_opt: ["no-new-privileges:true"]
|
|
cap_drop: ["ALL"]
|
|
tmpfs: ["/tmp/.cache:noexec,nosuid,size=1g"]
|
|
networks: [firecrawl-backend, research]
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
restart: unless-stopped
|
|
command: redis-server --bind 0.0.0.0 --save "" --appendonly no
|
|
security_opt: ["no-new-privileges:true"]
|
|
cap_drop: ["ALL"]
|
|
cap_add: ["SETGID", "SETUID"]
|
|
networks: [firecrawl-backend]
|
|
|
|
rabbitmq:
|
|
image: rabbitmq:3-alpine
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "rabbitmq-diagnostics", "-q", "check_running"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 8
|
|
security_opt: ["no-new-privileges:true"]
|
|
networks: [firecrawl-backend]
|
|
|
|
nuq-postgres:
|
|
image: ghcr.io/firecrawl/nuq-postgres:latest
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_DB: postgres
|
|
volumes: ["nuq-data:/var/lib/postgresql/data"]
|
|
security_opt: ["no-new-privileges:true"]
|
|
networks: [firecrawl-backend]
|
|
|
|
networks:
|
|
research: {}
|
|
firecrawl-backend:
|
|
internal: true
|
|
|
|
volumes:
|
|
nuq-data: {}
|