Despliegue
Todo corre desde una única imagen prediseñada: ghcr.io/diegoparras/escriba:latest.
Incluye ffmpeg, Tesseract OCR, Whisper y un Redis integrado — sin servicios extra.
- Project → + Service → App, luego configure Source → Docker Image con
ghcr.io/diegoparras/escriba:latest. - Agregue sus variables de entorno (vea Configuración).
- En Domains, establezca Container Port
8000, agregue su dominio y habilite HTTPS. - Deploy.
git clone https://github.com/diegoparras/escriba.gitcd escribacp .env.example .env # set your secretsdocker compose up -d --buildStacks → Add stack → Repository usando
https://github.com/diegoparras/escriba y la ruta de compose docker-compose.yml
(o pegue el archivo compose en el editor web). Defina las variables de entorno y
despliegue; la app escucha en el puerto 8000.
Create Application → GitHub (repo diegoparras/escriba) con Build Type:
Dockerfile, agregue sus variables de entorno, apunte el dominio al Container Port
8000 con HTTPS y despliegue.
docker build -t escriba .docker run -d --name escriba --restart unless-stopped -p 8000:8000 \-e SECRET_KEY="$(openssl rand -hex 32)" -e GOD_PASSWORD="change-me" escribaPara TLS, coloque un proxy inverso delante. Caddyfile de ejemplo (HTTPS automático):
example.com { reverse_proxy localhost:8000}Con Nginx, redirija hacia localhost:8000 y suba client_max_body_size para subidas grandes.
Servicio de anonimización
Sección titulada «Servicio de anonimización»Para habilitar la anonimización de PII, ejecute el servicio interno Anonimal
junto a Escriba y apunte ANONIMAL_URL hacia él (por ejemplo,
http://anonimal:8000). Deje ANONIMAL_URL vacío para ocultar la función por completo.
Rendimiento
Sección titulada «Rendimiento»De forma predeterminada, la app genera un worker por núcleo de CPU, así que se adapta a cualquier host
(un VPS de 1 núcleo → 1 worker; un servidor de 24 hilos → 24). Cada worker usa ~250 MB de RAM;
fije WEB_CONCURRENCY en un número concreto para acotarlo.