Instalar o Anonimal
O Anonimal roda local / self-hosted: os dados nunca saem da sua infraestrutura. A imagem é publicada no GitHub Container Registry e expõe a porta 8000 dentro do contêiner.
Escolha uma imagem
Seção intitulada “Escolha uma imagem”Há duas imagens. Escolha por cobertura versus peso.
| Imagem | Tag | Tamanho | Detecta | Quando |
|---|---|---|---|---|
| full (ML) | :latest, :<ver> | imagem de ~6-7 GB + ~3 GB de RAM | estruturado + nomes / endereços (OPF) | cobertura máxima; substituindo o Anonimal do ecossistema |
| lite (regex) | :lite, :<ver>-lite | dezenas de MB | apenas estruturado (e-mail, telefone, cartão, DNI, CUIT, CBU, segredos) | leve, sem ML; não enxerga nomes em texto livre |
Requisitos
Seção intitulada “Requisitos”- Docker (o único requisito obrigatório).
- lite: algumas dezenas de MB de disco e RAM mínima. Inicia instantaneamente.
- full: ~6-7 GB de disco e ~3 GB de RAM para o modelo residente; é limitado por CPU. Dê ao contêiner aproximadamente 6 GB de RAM.
Docker run
Seção intitulada “Docker run”# Inicia instantaneamente, sem modelodocker run -d --name anonimal -p 8920:8000 \ ghcr.io/diegoparras/anonimal-svc:lite# Carrega o modelo na RAM no primeiro boot — dê um momentodocker run -d --name anonimal -p 8920:8000 \ ghcr.io/diegoparras/anonimal-svc:latestPrimeiro boot
Seção intitulada “Primeiro boot”Verifique a saúde e depois anonimize uma amostra. A interface web é servida no mesmo endereço.
curl -s localhost:8920/healthcurl -s localhost:8920/anonymize -H "Content-Type: application/json" \ -d '{"text":"email juan@acme.com, CUIT 20-12345678-6","mode":"pseudo"}'Na imagem full, /health retorna imediatamente enquanto o modelo carrega em
segundo plano; ml.ready muda para true assim que o checkpoint estiver aquecido. A interface fica em
http://localhost:8920.
Configuração: motor regex vs ML
Seção intitulada “Configuração: motor regex vs ML”A variável ANONIMAL_ENGINE seleciona o motor de detecção:
auto(padrão) — usa ML se estiver pronto, caso contrário recorre ao lite.lite— apenas regex (estruturado + documentos LATAM). Sempre disponível.ml— força o motor OpenAI Privacy Filter (retorna503se ele não estiver disponível, por exemplo, na imagem lite).
OPF_DEVICE (apenas imagem full) alterna o motor ML entre cpu e cuda.
Variáveis de ambiente
Seção intitulada “Variáveis de ambiente”| Variável | Padrão | Finalidade |
|---|---|---|
ANONIMAL_ENGINE | auto | Seleção de motor: auto · lite · ml. |
ANONIMAL_MODE | pseudo | Modo de substituição padrão para a API / UI. |
ANONIMAL_TOKEN | (vazio) | Token de serviço. Se configurado, toda requisição deve carregá-lo (Authorization: Bearer ou X-Anonimal-Token). |
ANON_HASH_KEY | (aleatório por processo) | Chave para o modo hash; configure-a para pseudônimos estáveis entre reinícios. |
ANONIMAL_MAX_CHARS | 500000 | Comprimento máximo de entrada (acima disso retorna 413). |
ANONIMAL_MAX_PDF_BYTES | 26214400 (25 MB) | Tamanho máximo de PDF para redação. |
OPF_DEVICE | cpu | cpu ou cuda (apenas imagem full). |
OPF_CHECKPOINT | (padrão) | Caminho para um checkpoint OPF personalizado (apenas imagem full). |
Segurança
Seção intitulada “Segurança”Projetado para rodar local. Se você o expuser em uma rede: configure ANONIMAL_TOKEN
(obrigatório em toda requisição) e coloque um proxy reverso TLS na frente. A imagem roda
como usuário non-root e impõe limites de tamanho (ANONIMAL_MAX_CHARS). Dentro do
ecossistema, mantenha o Anonimal na rede interna com nenhum domínio público e deixe
o Escriba alcançá-lo pelo hostname interno.