version: '3.8' services: rag-app: build: . container_name: drakkenheim-rag ports: - "8501:8501" environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - APP_PASSWORD_HASH=${APP_PASSWORD_HASH} - PASSWORD_SALT=${PASSWORD_SALT} - SESSION_TIMEOUT=${SESSION_TIMEOUT:-3600} - TOKENIZERS_PARALLELISM=false - CHROMA_TELEMETRY=false - TOKENIZERS_VERBOSITY=error - CHROMA_DB_PATH=/app/data/chroma-db - PROCESSED_FILES_PATH=/app/data/processed-files volumes: # Persistent storage for ChromaDB database - chroma_data:/app/data/chroma-db # Persistent storage for processed files metadata - processed_files:/app/data/processed-files # Persistent storage for uploaded files (optional) - uploaded_files:/app/data/uploaded-files # Mount the input directory for initial documents - ./input:/app/input:ro restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8501/_stcore/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s volumes: chroma_data: driver: local processed_files: driver: local uploaded_files: driver: local