mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-04-25 08:26:22 +02:00
268 lines
8.2 KiB
YAML
268 lines
8.2 KiB
YAML
version: '3.8'
|
|
|
|
volumes:
|
|
uploads:
|
|
driver: local
|
|
driver_opts:
|
|
type: none
|
|
o: bind
|
|
device: ./data/uploads
|
|
|
|
services:
|
|
rowboat:
|
|
build:
|
|
context: ./apps/rowboat
|
|
dockerfile: Dockerfile
|
|
ports:
|
|
- "${PORT:-3000}:3000"
|
|
environment:
|
|
- OPENAI_API_KEY=${OPENAI_API_KEY}
|
|
- MONGODB_CONNECTION_STRING=mongodb://mongo:27017/rowboat
|
|
- USE_AUTH=${USE_AUTH}
|
|
- AUTH0_SECRET=test_secret
|
|
- AUTH0_BASE_URL=http://localhost:3000
|
|
- AUTH0_ISSUER_BASE_URL=https://test.com
|
|
- AUTH0_CLIENT_ID=test
|
|
- AUTH0_CLIENT_SECRET=test
|
|
- AGENTS_API_URL=http://rowboat_agents:3001
|
|
- AGENTS_API_KEY=${AGENTS_API_KEY}
|
|
- COPILOT_API_URL=http://copilot:3002
|
|
- COPILOT_API_KEY=${COPILOT_API_KEY}
|
|
- REDIS_URL=redis://redis:6379
|
|
- USE_RAG=${USE_RAG}
|
|
- QDRANT_URL=http://qdrant:6333
|
|
- QDRANT_API_KEY=${QDRANT_API_KEY}
|
|
- USE_RAG_UPLOADS=${USE_RAG_UPLOADS}
|
|
- USE_RAG_S3_UPLOADS=${USE_RAG_S3_UPLOADS}
|
|
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
|
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
|
- RAG_UPLOADS_S3_BUCKET=${RAG_UPLOADS_S3_BUCKET}
|
|
- RAG_UPLOADS_S3_REGION=${RAG_UPLOADS_S3_REGION}
|
|
- USE_RAG_SCRAPING=${USE_RAG_SCRAPING}
|
|
- FIRECRAWL_API_KEY=${FIRECRAWL_API_KEY}
|
|
- USE_CHAT_WIDGET=${USE_CHAT_WIDGET}
|
|
- CHAT_WIDGET_HOST=http://localhost:3006
|
|
- CHAT_WIDGET_SESSION_JWT_SECRET=${CHAT_WIDGET_SESSION_JWT_SECRET}
|
|
- MAX_QUERIES_PER_MINUTE=${MAX_QUERIES_PER_MINUTE}
|
|
- MAX_PROJECTS_PER_USER=${MAX_PROJECTS_PER_USER}
|
|
- VOICE_API_URL=${VOICE_API_URL}
|
|
- PROVIDER_API_KEY=${PROVIDER_API_KEY}
|
|
- PROVIDER_BASE_URL=${PROVIDER_BASE_URL}
|
|
- PROVIDER_DEFAULT_MODEL=${PROVIDER_DEFAULT_MODEL}
|
|
- PROVIDER_COPILOT_MODEL=${PROVIDER_COPILOT_MODEL}
|
|
- RAG_UPLOADS_DIR=/app/uploads
|
|
- USE_KLAVIS_TOOLS=${USE_KLAVIS_TOOLS}
|
|
- KLAVIS_API_KEY=${KLAVIS_API_KEY}
|
|
- KLAVIS_GITHUB_CLIENT_ID=${KLAVIS_GITHUB_CLIENT_ID}
|
|
- KLAVIS_GOOGLE_CLIENT_ID=${KLAVIS_GOOGLE_CLIENT_ID}
|
|
- USE_BILLING=${USE_BILLING}
|
|
- BILLING_API_URL=${BILLING_API_URL}
|
|
- BILLING_API_KEY=${BILLING_API_KEY}
|
|
- USE_COMPOSIO_TOOLS=${USE_COMPOSIO_TOOLS}
|
|
- COMPOSIO_API_KEY=${COMPOSIO_API_KEY}
|
|
- COMPOSIO_TRIGGERS_WEBHOOK_SECRET=${COMPOSIO_TRIGGERS_WEBHOOK_SECRET}
|
|
restart: unless-stopped
|
|
volumes:
|
|
- uploads:/app/uploads
|
|
|
|
# rowboat_agents:
|
|
# build:
|
|
# context: ./apps/rowboat_agents
|
|
# dockerfile: Dockerfile
|
|
# ports:
|
|
# - "3001:3001"
|
|
# environment:
|
|
# - OPENAI_API_KEY=${OPENAI_API_KEY}
|
|
# - API_KEY=${AGENTS_API_KEY}
|
|
# - REDIS_URL=redis://redis:6379
|
|
# - MONGODB_URI=mongodb://mongo:27017/rowboat
|
|
# - QDRANT_URL=http://qdrant:6333
|
|
# - QDRANT_API_KEY=${QDRANT_API_KEY}
|
|
# - PROVIDER_BASE_URL=${PROVIDER_BASE_URL}
|
|
# - PROVIDER_API_KEY=${PROVIDER_API_KEY}
|
|
# - PROVIDER_DEFAULT_MODEL=${PROVIDER_DEFAULT_MODEL}
|
|
# - MAX_CALLS_PER_CHILD_AGENT=${MAX_CALLS_PER_CHILD_AGENT}
|
|
# - ENABLE_TRACING=${ENABLE_TRACING}
|
|
# restart: unless-stopped
|
|
|
|
# copilot:
|
|
# build:
|
|
# context: ./apps/copilot
|
|
# dockerfile: Dockerfile
|
|
# ports:
|
|
# - "3002:3002"
|
|
# environment:
|
|
# - OPENAI_API_KEY=${OPENAI_API_KEY}
|
|
# - API_KEY=${COPILOT_API_KEY}
|
|
# - PROVIDER_BASE_URL=${PROVIDER_BASE_URL}
|
|
# - PROVIDER_API_KEY=${PROVIDER_API_KEY}
|
|
# - PROVIDER_DEFAULT_MODEL=${PROVIDER_DEFAULT_MODEL}
|
|
# - PROVIDER_COPILOT_MODEL=${PROVIDER_COPILOT_MODEL}
|
|
# restart: unless-stopped
|
|
|
|
# tools_webhook:
|
|
# build:
|
|
# context: ./apps/experimental/tools_webhook
|
|
# dockerfile: Dockerfile
|
|
# ports:
|
|
# - "3005:3005"
|
|
# environment:
|
|
# - SIGNING_SECRET=${SIGNING_SECRET}
|
|
# restart: unless-stopped
|
|
|
|
# simulation_runner:
|
|
# build:
|
|
# context: ./apps/experimental/simulation_runner
|
|
# dockerfile: Dockerfile
|
|
# environment:
|
|
# - MONGODB_URI=mongodb://mongo:27017/rowboat
|
|
# - ROWBOAT_API_HOST=http://rowboat:3000
|
|
# - OPENAI_API_KEY=${OPENAI_API_KEY}
|
|
# restart: unless-stopped
|
|
|
|
setup_qdrant:
|
|
build:
|
|
context: ./apps/rowboat
|
|
dockerfile: scripts.Dockerfile
|
|
command: ["sh", "-c", "npm run setupQdrant"]
|
|
profiles: [ "setup_qdrant" ]
|
|
depends_on:
|
|
qdrant:
|
|
condition: service_healthy
|
|
environment:
|
|
- QDRANT_URL=http://qdrant:6333
|
|
- QDRANT_API_KEY=${QDRANT_API_KEY}
|
|
- EMBEDDING_VECTOR_SIZE=${EMBEDDING_VECTOR_SIZE}
|
|
restart: no
|
|
|
|
delete_qdrant:
|
|
build:
|
|
context: ./apps/rowboat
|
|
dockerfile: scripts.Dockerfile
|
|
command: ["sh", "-c", "npm run deleteQdrant"]
|
|
profiles: [ "delete_qdrant" ]
|
|
depends_on:
|
|
qdrant:
|
|
condition: service_healthy
|
|
environment:
|
|
- QDRANT_URL=http://qdrant:6333
|
|
- QDRANT_API_KEY=${QDRANT_API_KEY}
|
|
restart: no
|
|
|
|
rag-worker:
|
|
build:
|
|
context: ./apps/rowboat
|
|
dockerfile: scripts.Dockerfile
|
|
command: ["npm", "run", "rag-worker"]
|
|
profiles: [ "rag-worker" ]
|
|
environment:
|
|
- GOOGLE_API_KEY=${GOOGLE_API_KEY}
|
|
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
|
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
|
- RAG_UPLOADS_S3_BUCKET=${RAG_UPLOADS_S3_BUCKET}
|
|
- RAG_UPLOADS_S3_REGION=${RAG_UPLOADS_S3_REGION}
|
|
- RAG_UPLOADS_DIR=/app/uploads
|
|
- USE_GEMINI_FILE_PARSING=${USE_GEMINI_FILE_PARSING}
|
|
- FIRECRAWL_API_KEY=${FIRECRAWL_API_KEY}
|
|
- OPENAI_API_KEY=${OPENAI_API_KEY}
|
|
- EMBEDDING_PROVIDER_BASE_URL=${EMBEDDING_PROVIDER_BASE_URL}
|
|
- EMBEDDING_PROVIDER_API_KEY=${EMBEDDING_PROVIDER_API_KEY}
|
|
- EMBEDDING_MODEL=${EMBEDDING_MODEL}
|
|
- MONGODB_CONNECTION_STRING=mongodb://mongo:27017/rowboat
|
|
- REDIS_URL=redis://redis:6379
|
|
- QDRANT_URL=http://qdrant:6333
|
|
- QDRANT_API_KEY=${QDRANT_API_KEY}
|
|
- USE_BILLING=${USE_BILLING}
|
|
- BILLING_API_URL=${BILLING_API_URL}
|
|
- BILLING_API_KEY=${BILLING_API_KEY}
|
|
restart: unless-stopped
|
|
volumes:
|
|
- uploads:/app/uploads
|
|
|
|
jobs-worker:
|
|
build:
|
|
context: ./apps/rowboat
|
|
dockerfile: scripts.Dockerfile
|
|
command: ["npm", "run", "jobs-worker"]
|
|
environment:
|
|
- OPENAI_API_KEY=${OPENAI_API_KEY}
|
|
- MONGODB_CONNECTION_STRING=mongodb://mongo:27017/rowboat
|
|
- REDIS_URL=redis://redis:6379
|
|
- QDRANT_URL=http://qdrant:6333
|
|
- QDRANT_API_KEY=${QDRANT_API_KEY}
|
|
- PROVIDER_API_KEY=${PROVIDER_API_KEY}
|
|
- PROVIDER_BASE_URL=${PROVIDER_BASE_URL}
|
|
- PROVIDER_DEFAULT_MODEL=${PROVIDER_DEFAULT_MODEL}
|
|
- PROVIDER_COPILOT_MODEL=${PROVIDER_COPILOT_MODEL}
|
|
- USE_BILLING=${USE_BILLING}
|
|
- BILLING_API_URL=${BILLING_API_URL}
|
|
- BILLING_API_KEY=${BILLING_API_KEY}
|
|
- USE_COMPOSIO_TOOLS=${USE_COMPOSIO_TOOLS}
|
|
- COMPOSIO_API_KEY=${COMPOSIO_API_KEY}
|
|
restart: unless-stopped
|
|
|
|
# chat_widget:
|
|
# build:
|
|
# context: ./apps/experimental/chat_widget
|
|
# dockerfile: Dockerfile
|
|
# profiles: [ "chat_widget" ]
|
|
# ports:
|
|
# - "3006:3006"
|
|
# environment:
|
|
# - PORT=3006
|
|
# - CHAT_WIDGET_HOST=http://localhost:3006
|
|
# - ROWBOAT_HOST=http://localhost:3000
|
|
# restart: unless-stopped
|
|
|
|
mongo:
|
|
image: mongo:latest
|
|
ports:
|
|
- "27017:27017"
|
|
restart: unless-stopped
|
|
attach: false
|
|
volumes:
|
|
- ./data/mongo:/data/db
|
|
|
|
redis:
|
|
image: redis:latest
|
|
ports:
|
|
- "6379:6379"
|
|
restart: unless-stopped
|
|
|
|
docs:
|
|
build:
|
|
context: ./apps/docs
|
|
dockerfile: Dockerfile
|
|
profiles: [ "docs" ]
|
|
ports:
|
|
- "8000:8000"
|
|
|
|
# twilio_handler:
|
|
# build:
|
|
# context: ./apps/experimental/twilio_handler
|
|
# dockerfile: Dockerfile
|
|
# ports:
|
|
# - "4010:4010"
|
|
# environment:
|
|
# - ELEVENLABS_API_KEY=${ELEVENLABS_API_KEY}
|
|
# - ROWBOAT_API_HOST=http://rowboat:3000
|
|
# - MONGODB_URI=mongodb://mongo:27017/rowboat
|
|
# restart: unless-stopped
|
|
|
|
qdrant:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.qdrant
|
|
ports:
|
|
- "6333:6333"
|
|
environment:
|
|
- QDRANT__STORAGE__STORAGE_PATH=/data/qdrant
|
|
restart: unless-stopped
|
|
profiles: [ "qdrant" ]
|
|
volumes:
|
|
- ./data/qdrant:/data/qdrant
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:6333/healthz"]
|
|
interval: 5s
|
|
timeout: 10s
|
|
retries: 3
|