Deploy
Tudo roda a partir de uma imagem pré-construída: ghcr.io/diegoparras/escriba:latest.
Ela inclui ffmpeg, Tesseract OCR, Whisper e um Redis embutido — sem serviços extras.
- Project → + Service → App, depois defina Source → Docker Image como
ghcr.io/diegoparras/escriba:latest. - Adicione suas variáveis de ambiente (veja Configuração).
- Em Domains, defina Container Port
8000, adicione seu domínio e 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 e o caminho do compose docker-compose.yml
(ou cole o arquivo compose no editor web). Defina as variáveis de ambiente e
faça o deploy; o aplicativo escuta na porta 8000.
Create Application → GitHub (repositório diegoparras/escriba) com Build Type:
Dockerfile, adicione suas variáveis de ambiente, defina o domínio para Container Port
8000 com HTTPS e faça o 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" escribaPara TLS, coloque um proxy reverso à frente. Exemplo de Caddyfile (HTTPS automático):
example.com { reverse_proxy localhost:8000}Com o Nginx, faça o proxy para localhost:8000 e aumente o client_max_body_size para uploads grandes.
Serviço de anonimização
Seção intitulada “Serviço de anonimização”Para habilitar a anonimização de PII, rode o serviço interno Anonimal
ao lado do Escriba e aponte ANONIMAL_URL para ele (por exemplo,
http://anonimal:8000). Deixe ANONIMAL_URL vazio para ocultar o recurso por completo.
Desempenho
Seção intitulada “Desempenho”Por padrão, o aplicativo cria um worker por núcleo de CPU, então ele se adapta a qualquer host
(uma VPS de 1 núcleo → 1 worker; um servidor de 24 threads → 24). Cada worker usa ~250 MB de RAM;
defina WEB_CONCURRENCY com um número fixo para limitá-lo.