Skip to content

Conversation

@hikariming
Copy link

This PR adds Docker Compose configuration to provide a one-click startup experience similar to Dify, significantly reducing the environment setup complexity.

Motivation

UltraRAG requires configuring a vector database (Milvus) and object storage (MinIO) to function properly. Setting up these dependencies manually can be tedious and error-prone for new users. This PR aims to provide an out-of-the-box Docker Compose solution that allows users to get started quickly, while still allowing them to customize or opt-out of any component as needed.

Changes

Added Files

  • docker/docker-compose.yml (GPU setup): UI + Milvus + vLLM (LLM + Embedding)
  • docker/docker-compose.cpu.yml (CPU-only): UI + Milvus (without vLLM)
  • docker/.env.example: Environment variables template for GPU setup
  • docker/.env.cpu.example: Environment variables template for CPU setup
  • docker/config/kb_config.json: Pre-configured knowledge base settings (Milvus URI)
  • docker/README.md: Comprehensive setup and usage documentation

Modified Files

  • ui/backend/app.py: Added support for default API configuration via environment variables
  • ui/frontend/main.js: Added UI pre-fill for default LLM/Embedding endpoints
  • .gitignore: Added docker/volumes/ to exclude persistent data from version control

Usage

Quick Start (GPU):
cd docker
cp .env.example .env

Edit .env to set model paths

docker compose up -d --build

Quick Start (CPU):
cd docker
cp .env.cpu.example .env
docker compose -f docker-compose.cpu.yml up -d --build

Then open http://localhost:5050

Design Philosophy

  • Optional: Users can still choose to run services separately or use external API endpoints
  • Flexible: CPU mode allows using hosted LLM/Embedding APIs instead of local vLLM
  • Isolated: All persistent data is stored under docker/volumes/ (gitignored)

See docker/README.md for detailed documentation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant