Files
hypothesis-machine/infra/compose.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: {}