{"repo": "bahaa1515/business-pdf-rag-assistant", "files": {"docker-compose.yml": {"d150e16c53314352f7fbb8498330b2fa5ec8c226": {"t": 1785746991.4492388, "n": 3897, "h": "f02a8891b0320391", "c": "services:\n # PostgreSQL Database\n postgres:\n image: postgres:15-alpine\n environment:\n POSTGRES_DB: ${POSTGRES_DB:-docuquery}\n POSTGRES_USER: ${POSTGRES_USER:-docuquery_user}\n POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-docuquery_password}\n ports:\n - \"${POSTGRES_PORT:-5433}:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U ${POSTGRES_USER:-docuquery_user} -d ${POSTGRES_DB:-docuquery}\"]\n interval: 10s\n timeout: 5s\n retries: 5\n networks:\n - docuquery-net\n\n # Qdrant Vector Database\n qdrant:\n image: qdrant/qdrant:latest\n ports:\n - \"${QDRANT_PORT:-6333}:6333\"\n volumes:\n - qdrant_storage:/qdrant/storage\n environment:\n QDRANT_API_KEY: ${QDRANT_API_KEY:-}\n networks:\n - docuquery-net\n\n # FastAPI Backend\n backend:\n build:\n context: ./backend\n dockerfile: Dockerfile\n ports:\n - \"${BACKEND_PORT:-8081}:8000\"\n environment:\n LLM_PROVIDER: ${LLM_PROVIDER:-openai}\n LLM_API_KEY: ${LLM_API_KEY:-}\n LLM_MODEL: ${LLM_MODEL:-gpt-4o-mini}\n LLM_BASE_URL: ${LLM_BASE_URL:-}\n EMBEDDING_PROVIDER: ${EMBEDDING_PROVIDER:-openai}\n EMBEDDING_API_KEY: ${EMBEDDING_API_KEY:-}\n EMBEDDING_MODEL: ${EMBEDDING_MODEL:-text-embedding-3-small}\n EMBEDDING_BASE_URL: ${EMBEDDING_BASE_URL:-}\n OPENAI_API_KEY: ${OPENAI_API_KEY:-}\n OPENROUTER_API_KEY: ${OPENROUTER_API_KEY:-}\n GROQ_API_KEY: ${GROQ_API_KEY:-}\n MISTRAL_API_KEY: ${MISTRAL_API_KEY:-}\n GEMINI_API_KEY: ${GEMINI_API_KEY:-}\n GOOGLE_API_KEY: ${GOOGLE_API_KEY:-}\n ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}\n TOGETHER_API_KEY: ${TOGETHER_API_KEY:-}\n DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-}\n XAI_API_KEY: ${XAI_API_KEY:-}\n OLLAMA_API_KEY: ${OLLAMA_API_KEY:-}\n DATABASE_URL: postgresql+psycopg2://${POSTGRES_USER:-docuquery_user}:${POSTGRES_PASSWORD:-docuquery_password}@postgres:5432/${POSTGRES_DB:-docuquery}\n QDRANT_URL: http://qdrant:6333\n BACKEND_PORT: 8000\n APP_ENV: ${APP_ENV:-development}\n CORS_ORIGINS: http://localhost:${FRONTEND_PORT:-5174}\n AUTH_SECRET_KEY: ${AUTH_SECRET_KEY:-change-this-development-secret}\n ADMIN_PASSWORD: ${ADMIN_PASSWORD:-admin}\n AUTH_TOKEN_TTL_MINUTES: ${AUTH_TOKEN_TTL_MINUTES:-480}\n PROVIDER_SETTINGS_ENCRYPTION_KEY: ${PROVIDER_SETTINGS_ENCRYPTION_KEY:-}\n TRUST_PROXY_HEADERS: ${TRUST_PROXY_HEADERS:-false}\n REDIS_URL: ${REDIS_URL:-}\n LOGIN_RATE_LIMIT_PER_MINUTE: ${LOGIN_RATE_LIMIT_PER_MINUTE:-5}\n CHAT_RATE_LIMIT_PER_MINUTE: ${CHAT_RATE_LIMIT_PER_MINUTE:-20}\n FEEDBACK_RATE_LIMIT_PER_MINUTE: ${FEEDBACK_RATE_LIMIT_PER_MINUTE:-20}\n ADMIN_READ_RATE_LIMIT_PER_MINUTE: ${ADMIN_READ_RATE_LIMIT_PER_MINUTE:-60}\n ADMIN_MUTATION_RATE_LIMIT_PER_MINUTE: ${ADMIN_MUTATION_RATE_LIMIT_PER_MINUTE:-20}\n DOCUMENT_UPLOAD_RATE_LIMIT_PER_HOUR: ${DOCUMENT_UPLOAD_RATE_LIMIT_PER_HOUR:-20}\n EVALUATION_RATE_LIMIT_PER_HOUR: ${EVALUATION_RATE_LIMIT_PER_HOUR:-10}\n OPTIMIZATION_RATE_LIMIT_PER_HOUR: ${OPTIMIZATION_RATE_LIMIT_PER_HOUR:-5}\n MAX_TOP_K: ${MAX_TOP_K:-20}\n MAX_OPTIMIZATION_CONFIGURATIONS: ${MAX_OPTIMIZATION_CONFIGURATIONS:-50}\n volumes:\n - ./backend/uploads:/app/uploads\n - ./data:/app/data\n - ./eval:/app/eval\n depends_on:\n postgres:\n condition: service_healthy\n qdrant:\n condition: service_started\n networks:\n - docuquery-net\n\n # React Frontend\n frontend:\n build:\n context: ./frontend\n dockerfile: Dockerfile\n args:\n VITE_API_URL: http://localhost:${BACKEND_PORT:-8081}\n ports:\n - \"${FRONTEND_PORT:-5174}:5173\"\n depends_on:\n - backend\n networks:\n - docuquery-net\n\nvolumes:\n postgres_data:\n qdrant_storage:\n\nnetworks:\n docuquery-net:\n driver: bridge\n"}}}}