---
title: "Scholaris en tu ordenador o en tu propia cuenta de Cloudflare"
description: "La misma aplicación con SQLite y tu disco: en Node, en Docker, como ejecutable de escritorio o desplegada en tu cuenta de Cloudflare. Qué se queda en tu máquina y cómo funciona sin conexión."
url: https://scholaris.joseluissaorin.com/saber/version-local
markdown: https://scholaris.joseluissaorin.com/saber/version-local.md
lang: es
alternate_en: https://scholaris.joseluissaorin.com/en/knowledge/self-hosting.md
updated: 2026-10-07
author: José Luis Saorín Ferrer (https://joseluissaorin.com)
---

# Scholaris en tu ordenador o en tu propia cuenta de Cloudflare

> La misma aplicación con SQLite y tu disco: en Node, en Docker, como ejecutable de escritorio o desplegada en tu cuenta de Cloudflare. Qué se queda en tu máquina y cómo funciona sin conexión.

## Cuatro maneras

La instancia de [scholaris.joseluissaorin.com](https://scholaris.joseluissaorin.com/acerca.md) es la versión alojada, la que se paga con el plan Pro. El mismo código funciona también en tu ordenador:

| Cómo | Qué es | Dónde quedan tus datos |
| --- | --- | --- |
| Node | La misma API sobre Node, SQLite (con sqlite-vec para los vectores) y el disco, con una cola que se reanuda si se corta; escucha en el puerto 8790 | La carpeta que elijas |
| Docker | Lo mismo en un contenedor con ffmpeg; una variante lo monta sin conexión con sus modelos (Ollama, EmbeddingGemma 2 y Whisper), con o sin GPU NVIDIA | Un volumen de Docker |
| Escritorio | Un solo ejecutable (Bun) para macOS, Windows y Linux, con la web dentro, que abre el navegador al arrancar | ~/Scholaris |
| Tu cuenta de Cloudflare | Un guion crea la base de datos, el almacenamiento, el índice de vectores y la cola, y despliega el Worker (necesita Workers de pago) | Tu cuenta |

La versión local no tiene cuotas: el plan «local» no limita documentos, páginas ni búsquedas, y admite ficheros de hasta 16 GB. Puede tener un solo usuario, varios sin cuenta externa o usar Clerk para iniciar sesión.

## Código abierto

El código se publicará con licencia **EUPL-1.2** en [github.com/joseluissaorin/scholaris-v2](https://github.com/joseluissaorin/scholaris-v2). Mientras se termina de revisar, el repositorio es privado: no damos fecha. Las órdenes exactas de instalación estarán en su README, que manda sobre esta página. El SDK de Python ya tiene esa misma licencia.

## Qué se queda en tu máquina y qué no

En la versión local, **tus ficheros, tu biblioteca, los vectores y el índice viven en tu disco**. La inteligencia se elige:

- **Con tus claves** (Gemini; OpenRouter, TypeSafe y Workers AI opcionales): lo más rápido y lo más fiel. Las páginas, el audio y los pasajes van a esos proveedores, con sus condiciones.
- **Sin conexión** (`SCHOLARIS_SIN_CONEXION=1`): ninguna clave de nube. Todo corre en tu máquina o en tu red y nada sale a internet; una guardia de red bloquea y anota cualquier intento, y una prueba de punta a punta lo comprueba.

| Pieza | Sin conexión | Con un proveedor en la nube |
| --- | --- | --- |
| Leer páginas (escaneados, fotos, diapositivas) | Un modelo de visión propio: Qwen3-VL 8B Instruct en Ollama, llama.cpp o vLLM | Gemini, OpenRouter (Mistral OCR) o Workers AI |
| Vectores | EmbeddingGemma 2 (texto, imagen, audio y vídeo, 768 dimensiones), en un servidor propio o en InferBox | Gemini Embedding 2 |
| Reordenar | bge-reranker-v2-m3 | Jev (TypeSafe) o Workers AI |
| Juzgar citas y redactar | El mismo modelo de visión, con probabilidades de los logprobs | Jev, Gemini u OpenRouter |
| Transcribir | Whisper large-v3-turbo (whisper.cpp) o Parakeet en InferBox | Gemini Transcribe o Whisper en Workers AI |
| Fichas bibliográficas | Solo lo que dice el documento (los catálogos en línea se abren con `SCHOLARIS_CATALOGOS=1`) | Crossref, OpenAlex, Open Library, Wikidata |

Lo que cuesta, medido en un Mac con M4 Max: una página escaneada del siglo XVIII tarda unos 26 s (la nube lee el libro entero en 13-20 s), con un CER de 0,06 en la página transcrita a mano frente a 0,006 con Gemini; 19 minutos de audio quedan listos en 2 min 34 s; la búsqueda da 0,804 de nDCG@10 frente a 0,899; y las citas que acepta son todas correctas y ninguna inventada, aunque deja sin cita más afirmaciones que la nube (61,5 % de exhaustividad frente a 100 %). Solo con CPU, leer escaneados se mide en minutos por página. El informe completo, con cómo reproducirlo, está en el repositorio (`packages/proveedores/SIN-CONEXION.md`), y el Docker de todo junto en `deploy/docker/compose.sin-conexion.yml`.

Además, **abrir y buscar un .spdf ya leído** funciona sin nada de lo anterior, con el SDK de Python (ver [El formato SPDF](https://scholaris.joseluissaorin.com/saber/spdf.md)).

## Lo mismo por fuera

La versión local habla la misma API (v1 y v2) y el mismo MCP que la nube, así que el SDK de Python, los ejemplos de la [guía de la API](https://scholaris.joseluissaorin.com/api.md) y los agentes funcionan igual apuntando a `http://localhost:8790`.
