- Remove notebook mode, add RAG + Personal Assistant dual-bot setup - Add knowledge base management (upload, URL scraping, document processing) - Add user feature access control (allowed_features, features_override) - Update admin dashboard with knowledge base tab - Redesign login page, sidebar, and profile - Add Celery tasks for async document processing Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
101 lines
2.6 KiB
YAML
101 lines
2.6 KiB
YAML
version: '3.9'
|
|
|
|
services:
|
|
db:
|
|
image: postgres:16-alpine
|
|
container_name: nexus-postgres
|
|
environment:
|
|
POSTGRES_DB: ${POSTGRES_DB:-nexus_db}
|
|
POSTGRES_USER: ${POSTGRES_USER:-nexus_user}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}
|
|
ports:
|
|
- "5432:5432"
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-nexus_user} -d ${POSTGRES_DB:-nexus_db}"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
networks:
|
|
- nexus-network
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: nexus-redis
|
|
ports:
|
|
- "6379:6379"
|
|
volumes:
|
|
- redis_data:/data
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
networks:
|
|
- nexus-network
|
|
|
|
qdrant:
|
|
image: qdrant/qdrant:latest
|
|
container_name: nexus-qdrant
|
|
ports:
|
|
- "6333:6333"
|
|
- "6334:6334"
|
|
volumes:
|
|
- qdrant_data:/qdrant/storage
|
|
environment:
|
|
- QDRANT__SERVICE__GRPC_PORT=6334
|
|
networks:
|
|
- nexus-network
|
|
|
|
backend:
|
|
build:
|
|
context: ./backend
|
|
dockerfile: Dockerfile
|
|
container_name: nexus-backend
|
|
environment:
|
|
ENVIRONMENT: development
|
|
DATABASE_URL: postgresql://${POSTGRES_USER:-nexus_user}:${POSTGRES_PASSWORD:-changeme}@db:5432/${POSTGRES_DB:-nexus_db}
|
|
REDIS_URL: redis://redis:6379/0
|
|
QDRANT_URL: http://qdrant:6333
|
|
ENTRA_CLIENT_ID: ${ENTRA_CLIENT_ID}
|
|
ENTRA_CLIENT_SECRET: ${ENTRA_CLIENT_SECRET}
|
|
ENTRA_TENANT_ID: ${ENTRA_TENANT_ID}
|
|
ENTRA_REDIRECT_URI: ${ENTRA_REDIRECT_URI:-http://localhost:8000/api/v1/auth/callback}
|
|
OPENAI_API_KEY: ${OPENAI_API_KEY}
|
|
GOOGLE_API_KEY: ${GOOGLE_API_KEY}
|
|
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
|
|
JWT_SECRET: ${JWT_SECRET}
|
|
JWT_ALGORITHM: ${JWT_ALGORITHM:-HS256}
|
|
JWT_EXPIRATION_MINUTES: ${JWT_EXPIRATION_MINUTES:-15}
|
|
REFRESH_TOKEN_EXPIRATION_DAYS: ${REFRESH_TOKEN_EXPIRATION_DAYS:-7}
|
|
LLAMAPARSE_API_KEY: ${LLAMAPARSE_API_KEY:-}
|
|
MAX_UPLOAD_SIZE_MB: ${MAX_UPLOAD_SIZE_MB:-100}
|
|
ports:
|
|
- "8000:8000"
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
qdrant:
|
|
condition: service_started
|
|
volumes:
|
|
- ./backend:/app
|
|
- uploads_data:/app/uploads
|
|
networks:
|
|
- nexus-network
|
|
|
|
volumes:
|
|
postgres_data:
|
|
driver: local
|
|
redis_data:
|
|
driver: local
|
|
qdrant_data:
|
|
driver: local
|
|
uploads_data:
|
|
driver: local
|
|
|
|
networks:
|
|
nexus-network:
|
|
driver: bridge
|