Deployment
Tutto gira a partire da un’unica immagine già pronta: ghcr.io/diegoparras/escriba:latest.
Include ffmpeg, Tesseract OCR, Whisper e un Redis integrato — nessun servizio aggiuntivo.
- Project → + Service → App, poi imposta Source → Docker Image su
ghcr.io/diegoparras/escriba:latest. - Aggiungi le tue variabili d’ambiente (vedi Configurazione).
- In Domains, imposta Container Port
8000, aggiungi il tuo dominio e abilita l’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 e percorso compose docker-compose.yml
(oppure incolla il file compose nell’editor web). Imposta le variabili d’ambiente e
fai il deploy; l’app è in ascolto sulla porta 8000.
Create Application → GitHub (repo diegoparras/escriba) con Build Type:
Dockerfile, aggiungi le tue variabili d’ambiente, imposta il dominio su Container Port
8000 con HTTPS e fai il deploy.
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" escribaPer il TLS, metti davanti un reverse proxy. Esempio di Caddyfile (HTTPS automatico):
example.com { reverse_proxy localhost:8000}Con Nginx, fai il proxy verso localhost:8000 e aumenta client_max_body_size per i caricamenti grandi.
Servizio di anonimizzazione
Sezione intitolata “Servizio di anonimizzazione”Per abilitare l’anonimizzazione dei PII, avvia il servizio interno Anonimal
accanto a Escriba e punta ANONIMAL_URL su di esso (ad es.
http://anonimal:8000). Lascia ANONIMAL_URL vuoto per nascondere completamente la funzione.
Prestazioni
Sezione intitolata “Prestazioni”Per impostazione predefinita l’app crea un worker per ogni core della CPU, così si adatta a qualsiasi host
(un VPS a 1 core → 1 worker; un server a 24 thread → 24). Ogni worker usa circa 250 MB di RAM;
imposta WEB_CONCURRENCY su un numero fisso per limitarlo.