System Requirements

Ragz runs comfortably on a single machine. What you need depends almost entirely on where you place the embeddings and rerank models — everything else in the stack is lightweight.

Prerequisites

RequirementVersionNotes
DockercurrentRuns Postgres, Qdrant, Redis, MinIO, LiteLLM, and (optionally) local model servers via Compose.
Python3.12Backend runtime, managed with uv.
Node.js20+Frontend build and dev server.
pnpmcurrentFrontend package manager.

RAM: it comes down to model placement

Everything in Ragz besides the model servers — API, worker, Postgres, Qdrant, Redis, MinIO — idles at roughly 1–1.5 GB combined. Your total RAM budget is driven almost entirely by whether embeddings and rerank run locally or against a cloud API.

SetupLocal model serversHost RAM
Cloud — API embeddings (e.g. OpenAI) + API rerank (e.g. Cohere)none4–5 GB
Hybrid — one local model (embeddings or rerank)one8–10 GB
Fully local / air-gapped — local bge-m3 embeddings + local reranktwo12–16 GB

Lowest footprint

If you don't need an air-gapped deployment, use cloud APIs for embeddings and rerank. It's the lowest-RAM setup, needs no GPU, and you can still run the generation LLM locally later if you want to.

The generation LLM sits outside this table entirely:

  • Cloud API (recommended) — no local resources, no GPU required.
  • Local LLM (Ollama/vLLM) — needs its own GPU, independent of the RAM budget above.

Disk

Budget 80–100 GB of SSD:

  • ~25–30 GB fixed — container images and, if you run any models locally, their weights.
  • The rest grows with your corpus — original documents, extracted text, parsed chunks, and vector embeddings all scale with how much you ingest.

vCPU

A few cores are enough for the API and Celery worker under normal load; ingestion (parsing, OCR, embedding) is the most CPU-intensive path and benefits from more cores if you ingest large batches of documents.

GPU

Only required if you run a local generation LLM. Ollama or vLLM need a GPU with 16 GB+ VRAM for reasonable throughput. Cloud-API generation, and both the cloud and hybrid model-placement setups above, need no GPU at all.

OCR downloads on first use

Scanned or image-only PDFs fall back to OCR automatically. The first OCR run downloads roughly 90 MB of models to the worker host (~/.EasyOCR); disable OCR entirely with RAGZ_OCR_ENABLED=false if that's not acceptable for your environment.

Next steps