Scholaris on your computer, or in your own Cloudflare account
The same app with SQLite and your disk: on Node, in Docker, as a desktop executable or deployed to your Cloudflare account. What stays on your machine and what still needs the cloud.
Reviewed on This page as Markdown
Four ways
The instance at scholaris.joseluissaorin.com is the hosted version, the one paid for with the Pro plan. The same code also runs on your computer:
| How | What it is | Where your data lives |
|---|---|---|
| Node | The same API on Node, SQLite (with sqlite-vec for vectors) and the disk, with a queue that resumes if interrupted; listens on port 8790 | The folder you choose |
| Docker | The same in a container with ffmpeg; a variant adds InferBox, a model server with an NVIDIA GPU | A Docker volume |
| Desktop | A single executable (Bun) for macOS, Windows and Linux, with the web app inside, that opens the browser on start | ~/Scholaris |
| Your Cloudflare account | A script creates the database, storage, vector index and queue, and deploys the Worker (needs paid Workers) | Your account |
The home version has no quotas: the "local" plan does not limit documents, pages or searches, and takes files up to 16 GB. It can have a single user, several without an external account, or use Clerk to sign in.
Open source
The code will be published under the EUPL-1.2 at github.com/joseluissaorin/scholaris-v2. While the review is finished the repository is private: we are not giving a date. The exact installation commands will be in its README, which takes precedence over this page. The Python SDK already carries the same licence.
What stays on your machine and what does not
In the home version, your files, your library, the vectors and the index live on your disk. But Scholaris does not work fully offline: to read pages it needs at least one cloud reader.
| Piece | Offline | With a cloud provider |
|---|---|---|
| Reading pages (scans, photos, slides) | No local reader yet | Gemini, OpenRouter (Mistral OCR) or Workers AI |
| Vectors | InferBox (Qwen3-VL Embedding, 2048 dimensions) | Gemini Embedding 2 |
| Reranking and judging | InferBox | Jev (TypeSafe) or Workers AI |
| Transcribing | InferBox | Gemini Transcribe or Whisper on Workers AI |
| Drafting answers | InferBox | Gemini or OpenRouter |
| Searching and citing what is already read | Yes: word search always; search by meaning, with InferBox |
In practice the Gemini key is the only required one; OpenRouter, TypeSafe, Workers AI and OpenAlex are optional. What does work fully offline is opening and searching an .spdf that has already been read with the Python SDK (see The SPDF format).
The same from outside
The home version speaks the same API (v1 and v2) and the same MCP as the cloud, so the Python SDK, the examples in the API guide and agents work the same pointed at http://localhost:8790.