139 lines
4.4 KiB
YAML
Executable File
139 lines
4.4 KiB
YAML
Executable File
version: "3.8"
|
|
|
|
name: firecrawl
|
|
|
|
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}
|
|
NUQ_DATABASE_URL: postgres://postgres:postgres@nuq-postgres:5432/postgres
|
|
USE_DB_AUTHENTICATION: ${USE_DB_AUTHENTICATION}
|
|
OPENAI_API_KEY: sk-uH-OGDpTXD17I16bgbf6sw
|
|
OPENAI_BASE_URL: http://llm.lab
|
|
MODEL_NAME: fireworks/deepseek-v3p1-terminus
|
|
MODEL_EMBEDDING_NAME: text-embedding-3-small
|
|
OLLAMA_BASE_URL: ${OLLAMA_BASE_URL}
|
|
SLACK_WEBHOOK_URL: ${SLACK_WEBHOOK_URL}
|
|
BULL_AUTH_KEY: ${BULL_AUTH_KEY}
|
|
TEST_API_KEY: dummy-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: https://discord.com/api/webhooks/1351656041833828482/Xx8JcCSIGSGj8TNYFGZFg8XTX8GditI1V7xY_44QfjtgLOWpnD9Cr-3uAOvz1Ac55Z-6
|
|
SERPER_API_KEY: ${SERPER_API_KEY}
|
|
SEARCHAPI_API_KEY: ${SEARCHAPI_API_KEY}
|
|
LOGGING_LEVEL: ${LOGGING_LEVEL}
|
|
PROXY_SERVER: pr.oxylabs.io:7777
|
|
PROXY_USERNAME: vasceannie_Rn3sD
|
|
PROXY_PASSWORD: Squirtle123
|
|
SEARXNG_ENDPOINT: http://search.lab
|
|
SEARXNG_ENGINES: ${SEARXNG_ENGINES}
|
|
SEARXNG_CATEGORIES: ${SEARXNG_CATEGORIES}
|
|
|
|
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}
|
|
networks:
|
|
- backend
|
|
deploy:
|
|
replicas: 1
|
|
restart_policy:
|
|
condition: any
|
|
delay: 5s
|
|
max_attempts: 3
|
|
placement:
|
|
constraints:
|
|
- node.role == manager
|
|
resources:
|
|
limits:
|
|
cpus: "2"
|
|
memory: 2G
|
|
reservations:
|
|
cpus: "1"
|
|
memory: 1G
|
|
|
|
api:
|
|
image: ghcr.io/firecrawl/firecrawl
|
|
environment:
|
|
<<: *common-env
|
|
HOST: "0.0.0.0"
|
|
PORT: ${INTERNAL_PORT:-3002}
|
|
WORKER_PORT: ${WORKER_PORT:-3005}
|
|
ENV: local
|
|
depends_on:
|
|
- redis
|
|
- playwright-service
|
|
networks:
|
|
- backend
|
|
command: node dist/src/harness.js --start-docker
|
|
deploy:
|
|
replicas: 1
|
|
restart_policy:
|
|
condition: any
|
|
delay: 5s
|
|
max_attempts: 3
|
|
placement:
|
|
constraints:
|
|
- node.role == manager
|
|
resources:
|
|
limits:
|
|
cpus: "4"
|
|
memory: 4G
|
|
reservations:
|
|
cpus: "2"
|
|
memory: 2G
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.swarm.network=public"
|
|
- "traefik.swarm.network=public"
|
|
- "traefik.http.routers.firecrawl-api.rule=Host(`firecrawl.sidepiece.rip`)"
|
|
- "traefik.http.routers.firecrawl-api.entrypoints=websecure"
|
|
- "traefik.http.routers.firecrawl-api.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.firecrawl-api.loadbalancer.server.port=3002"
|
|
|
|
redis:
|
|
image: redis:alpine
|
|
networks:
|
|
- backend
|
|
command: redis-server --bind 0.0.0.0
|
|
deploy:
|
|
replicas: 1
|
|
restart_policy:
|
|
condition: any
|
|
delay: 5s
|
|
max_attempts: 3
|
|
placement:
|
|
constraints:
|
|
- node.role == manager
|
|
|
|
nuq-postgres:
|
|
image: vasceannie/postgres-nuq:latest
|
|
environment:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_DB: postgres
|
|
networks:
|
|
- backend
|
|
deploy:
|
|
replicas: 1
|
|
restart_policy:
|
|
condition: any
|
|
delay: 5s
|
|
max_attempts: 3
|
|
placement:
|
|
constraints:
|
|
- node.role == manager
|
|
|
|
networks:
|
|
backend:
|
|
driver: overlay
|
|
attachable: true
|