Building from Source
Building from Source
The official build pipeline uses SCons as the orchestrator, run from the monorepo root.
Pipeline
build frontend (Vite) → hybrid backend build → Electron + electron-builder
frontend/dist/ dist/vectora/vectora(.exe) frontend/dist-electron/The “hybrid build” compiles only the backend package to C via Nuitka (--mode=package, producing a .pyd), then uses PyInstaller to package the launcher + that compiled module + the Python libs into a single executable. Compiling only the backend (instead of pure Nuitka onefile) avoids running out of memory compiling giant dependencies (google.genai.types, LanceDB) straight to C.
Commands
scons release # full build + native installer for the current OSBuild prerequisites
- Python 3.13 (pinned — the Nuitka version in use doesn’t support 3.14 yet)
- uv
- Node.js 24+ and
pnpm - On Windows: Visual Studio Build Tools (MSVC) + Windows SDK, for Nuitka’s C toolchain
Quality
scons tests # full suite (pytest + vitest)
scons coverage # same suite, with coverage report
scons lint # ruff + ty + bandit (Python) + tsc + oxlint (TypeScript)Infrastructure Docker (not the app)
scons docker # spins up Postgres + Redis + Qdrant for complete mode