UltraRAG Docker & Self-Hosted Deployment

GitHub

A Low-Code MCP Framework for Building Complex and Innovative RAG Pipelines

5,670 stars Python Python 1 file ยท ~3,583 tokens #deepseek#demo#easy#embedding#flask#gpt#huggingface-transformers#llm
1. Pull Image (DOCKERHUB) docker pull OpenBMB/UltraRAG:latest
2. Docker Run (1-Click Launch) docker run -d --name ultrarag -p 5050:5050 --restart always openbmb/ultrarag:latest
3. Podman Run podman run -d --name ultrarag -p 5050:5050 --restart always openbmb/ultrarag:latest
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/openbmb/ultrarag:latest
5. ORAS Pull (OCI Artifact) oras pull openbmb/ultrarag:latest
Dockerfile
FROM node:22-bookworm-slim AS frontend-builder

WORKDIR /ultrarag-frontend
COPY ui/frontend/package*.json ./
RUN npm ci
COPY ui/frontend/ ./
RUN npm run build

FROM nvidia/cuda:12.9.1-base-ubuntu24.04

COPY --from=ghcr.io/astral-sh/uv:0.12.0 /uv /uvx /bin/
COPY --from=frontend-builder /usr/local/bin/node /usr/local/bin/node
COPY --from=frontend-builder /usr/local/lib/node_modules /usr/local/lib/node_modules

ENV DEBIAN_FRONTEND=noninteractive \
    PYTHONUNBUFFERED=1 \
    UV_PYTHON=python3.12 \
    PATH="/root/.local/bin:/ultrarag/.venv/bin:${PATH}"

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        python3.12 python3.12-venv python3-dev \
        curl ca-certificates git build-essential libreoffice && \
    update-ca-certificates && \
    ln -sf /usr/bin/python3.12 /usr/local/bin/python3 && \
    ln -sf /usr/bin/python3.12 /usr/local/bin/python && \
    ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm && \
    ln -s /usr/local/lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /ultrarag
COPY . .
COPY --from=frontend-builder /ultrarag-frontend/dist ./ui/frontend/dist

RUN uv sync --frozen --no-dev --all-extras
RUN node --version && npx --version && test -s ui/frontend/dist/index.html

EXPOSE 5050

CMD ["ultrarag", "show", "ui", "--port", "5050", "--host", "0.0.0.0"]