Install on Windows
The supported path on Windows is WSL2 + Ubuntu. Ragz's toolchain — uv, Celery with native parsing/OCR libraries, Docker — is developed and tested against Linux; WSL2 runs a real Ubuntu kernel and userspace, so the Linux install applies unmodified once you're inside it.
Native Windows is not supported
Running the backend directly under native Windows (PowerShell/cmd, no WSL) is not a supported path — Celery's native dependencies (Docling, EasyOCR, fastembed) and the container tooling assume a Linux environment. Use WSL2.
1. Enable WSL2
From an elevated PowerShell prompt:
wsl --installThis enables the WSL2 feature, installs the WSL2 kernel, and installs Ubuntu as the default distribution. Reboot if prompted, then launch Ubuntu from the Start menu to finish setup (it asks you to create a UNIX username and password on first launch).
If WSL was already installed and you just need Ubuntu:
wsl --install -d UbuntuConfirm you're on WSL2 (not the older WSL1):
wsl -l -v2. Install Docker Desktop with the WSL2 backend
Install Docker Desktop for Windows and, during setup, ensure Use the WSL 2 based engine is enabled (default on current versions). Then, in Docker Desktop's Settings:
- Resources › WSL Integration — enable integration for your Ubuntu distribution.
This lets the docker and docker compose commands you run inside Ubuntu
talk to the same Docker engine Desktop manages on Windows — you do not need
to install Docker separately inside WSL2.
Verify from inside Ubuntu
Open the Ubuntu terminal and run docker version and docker compose version. Both should succeed without sudo once WSL integration is
enabled.
3. Follow the Linux install inside WSL2
From here, open the Ubuntu terminal (not PowerShell) and follow Install on Linux top to bottom:
- Install prerequisites: Docker is already covered by Desktop's WSL
integration above, so start with Python 3.12 +
uv, then Node 20+ +pnpm, using the Ubuntu/Debian one-liners in that guide. - Clone the repository inside the Linux filesystem (e.g.
~/raghub, not/mnt/c/...) — builds and file watching are dramatically faster on the nativeext4filesystem than across the/mnt/cWindows interop boundary. - Run every subsequent step —
docker compose -f deploy/compose.yaml up -d, the backenduv sync/alembic upgrade head/ bootstrap /uvicorn, the Celery worker and beat scheduler, and the frontendpnpm install/pnpm generate:api/pnpm dev— from that Ubuntu shell.
Ports work the same
WSL2 forwards localhost between Windows and Ubuntu automatically, so
http://localhost:5173 and http://localhost:8000 are reachable from
your regular Windows browser once the frontend and backend are running
inside WSL2 — no extra networking setup needed.
4. First run
Same as Linux: open http://localhost:5173 from your Windows browser, sign in with the bootstrap superadmin, add a model under Admin › Models, create a workspace, upload a document, and chat.
Next steps
- Install on Linux — the full step-by-step you'll follow inside WSL2.
- System Requirements
- Production — for a real deployment, prefer a native Linux host over WSL2.