Files
.llmx/compose.yaml
Sebastian Krüger 6724fea494 perf: optimize Docker build time from >10min to ~2min
- Remove sentence-transformers dependency (saves ~3GB PyTorch/CUDA)
- Make CrossEncoder import optional with graceful fallback
- Optimize Dockerfile for layer caching (incremental builds ~3s)
- Change PostgREST port from 3000 to 3001 (avoid Next.js conflict)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 21:36:29 +01:00

72 lines
2.1 KiB
YAML

services:
# PostgreSQL with pgvector for vector storage
crawl4ai-db:
image: pgvector/pgvector:pg16
container_name: llmx_crawl4ai_db
restart: unless-stopped
ports:
- "5433:5432"
volumes:
- crawl4ai_data:/var/lib/postgresql/data
- ./servers/mcp-crawl4ai-rag/crawled_pages_1024.sql:/docker-entrypoint-initdb.d/01_schema.sql:ro
environment:
POSTGRES_USER: crawl4ai
POSTGRES_PASSWORD: ${CRAWL4AI_DB_PASSWORD}
POSTGRES_DB: crawl4ai
healthcheck:
test: ["CMD-SHELL", "pg_isready -U crawl4ai"]
interval: 10s
timeout: 5s
retries: 5
# PostgREST - Supabase-compatible REST API
crawl4ai-rest:
image: postgrest/postgrest:v12.2.0
container_name: llmx_crawl4ai_rest
restart: unless-stopped
ports:
- "3001:3000"
environment:
PGRST_DB_URI: postgresql://crawl4ai:${CRAWL4AI_DB_PASSWORD}@crawl4ai-db:5432/crawl4ai
PGRST_DB_SCHEMAS: public
PGRST_DB_ANON_ROLE: anon
PGRST_JWT_SECRET: ${JWT_SECRET}
PGRST_DB_EXTRA_SEARCH_PATH: public
depends_on:
crawl4ai-db:
condition: service_healthy
# Crawl4AI RAG MCP Server
crawl4ai-rag:
build:
context: ./servers/mcp-crawl4ai-rag
container_name: llmx_crawl4ai_rag
restart: unless-stopped
ports:
- "8051:8051"
environment:
# MCP Transport
TRANSPORT: sse
HOST: 0.0.0.0
PORT: 8051
# Embedding config - point to remote LiteLLM
EMBEDDING_API_BASE: https://llm.ai.pivoine.art/v1
EMBEDDING_MODEL: hosted_vllm/BAAI/bge-large-en-v1.5
EMBEDDING_DIMENSION: "1024"
OPENAI_API_KEY: ${LITELLM_API_KEY}
# Supabase-compatible config (pointing to PostgREST)
SUPABASE_URL: http://crawl4ai-rest:3000
SUPABASE_SERVICE_KEY: ${SUPABASE_SERVICE_KEY}
# Feature flags
USE_CONTEXTUAL_EMBEDDINGS: "false"
USE_HYBRID_SEARCH: "true"
USE_AGENTIC_RAG: "false"
USE_RERANKING: "false"
USE_KNOWLEDGE_GRAPH: "false"
depends_on:
- crawl4ai-rest
volumes:
crawl4ai_data:
name: llmx_crawl4ai_data