services: frontend: build: context: ./rag-quest-hub dockerfile: Dockerfile.dev ports: - "3000:8080" depends_on: - backend environment: - VITE_API_BASE_URL=http://backend:8000 - VITE_API_TIMEOUT=30000 - VITE_ENABLE_REGISTRATION=true volumes: # Development volume mounts for hot reload - ./rag-quest-hub/src:/app/src - ./rag-quest-hub/public:/app/public - ./rag-quest-hub/package.json:/app/package.json - ./rag-quest-hub/vite.config.ts:/app/vite.config.ts - ./rag-quest-hub/tailwind.config.ts:/app/tailwind.config.ts - ./rag-quest-hub/tsconfig.json:/app/tsconfig.json - ./rag-quest-hub/postcss.config.js:/app/postcss.config.js - ./rag-quest-hub/components.json:/app/components.json - ./rag-quest-hub/.env.production:/app/.env.production # Exclude node_modules from volume mount to avoid conflicts - /app/node_modules networks: - app-network backend: build: . ports: - "8000:8000" volumes: - ./src:/app/src - ./scripts:/app/scripts - ./alembic:/app/alembic - ./alembic.ini:/app/alembic.ini - db_data:/app/data # SQLite database volume depends_on: - qdrant environment: - QDRANT_HOST=qdrant - GEMINI_API_KEY=${GEMINI_API_KEY} - CORS_ORIGINS=http://localhost:3000,http://127.0.0.1:3000,http://frontend:8080 - DATABASE_URL=sqlite+aiosqlite:///./data/knowledge_assistant.db - JWT_SECRET=your-super-secret-jwt-key-for-development-only - JWT_LIFETIME_SECONDS=3600 - USER_REGISTRATION_ENABLED=true - EMAIL_VERIFICATION_REQUIRED=false entrypoint: ["/app/scripts/wait-for-qdrant.sh", "qdrant:6333", "/app/scripts/init-db.sh"] networks: - app-network qdrant: image: qdrant/qdrant:latest ports: - "6333:6333" - "6334:6334" volumes: - qdrant_data:/qdrant/storage networks: - app-network volumes: qdrant_data: db_data: networks: app-network: driver: bridge