Skip to content

Bring Escriba home

One self-contained image. Your server. Your files never leave it.

Escriba ships as one prebuilt Docker image that already bundles everything it needs — ffmpeg, Tesseract OCR, Whisper and an embedded Redis. There are no extra services to wire up. Pull it, set a password, and you have a private document-to-Markdown engine running on your own infrastructure.

Pull the image and run it with a single command:

Run Escriba
docker run -d --name escriba --restart unless-stopped -p 8000:8000 \
-e SECRET_KEY="$(openssl rand -hex 32)" \
-e GOD_PASSWORD="change-me" \
ghcr.io/diegoparras/escriba:latest

Then open http://localhost:8000 and sign in with the GOD_PASSWORD you set.

Everything runs from the single image above. Pick the platform you use.

  1. Project → + Service → App, then set Source → Docker Image to ghcr.io/diegoparras/escriba:latest.
  2. Add your environment variables (see Configuration).
  3. Under Domains, set Container Port 8000, add your domain and enable HTTPS.
  4. Deploy.

All settings are environment variables. The recommended minimum:

.env
SECRET_KEY=<openssl rand -hex 32> # required in production
GOD_PASSWORD=<a strong password>
ANGEL_PASSWORD=<optional>
HUMAN_PASSWORD=<optional>

If no password is set, a random GOD_PASSWORD is generated and printed to the container logs on startup. See the full list in Configuration.

The base app is light: a 1-core / 2 GB VPS with ~5 GB of disk is genuinely enough to start, and Escriba scales workers to your CPU. The optional enterprise PII anonymization module (Anonimal) is heavier — mount it only when you need it.