Installa Anonimal
Anonimal gira in locale / self-hosted: i dati non lasciano mai la tua infrastruttura. L’immagine è pubblicata sul GitHub Container Registry ed espone la porta 8000 all’interno del container.
Scegli un’immagine
Sezione intitolata “Scegli un’immagine”Ci sono due immagini. Scegli in base alla copertura rispetto al peso.
| Immagine | Tag | Dimensione | Rileva | Quando |
|---|---|---|---|---|
| full (ML) | :latest, :<ver> | immagine ~6-7 GB + ~3 GB di RAM | strutturati + nomi / indirizzi (OPF) | massima copertura; in sostituzione dell’Anonimal dell’ecosistema |
| lite (regex) | :lite, :<ver>-lite | decine di MB | solo strutturati (email, telefono, carta, DNI, CUIT, CBU, segreti) | leggero, senza ML; non vede i nomi in forma libera |
Requisiti
Sezione intitolata “Requisiti”- Docker (l’unico requisito imprescindibile).
- lite: poche decine di MB di disco e RAM minima. Si avvia istantaneamente.
- full: ~6-7 GB di disco e ~3 GB di RAM per il modello residente; è vincolato alla CPU. Assegna al container circa 6 GB di RAM.
Docker run
Sezione intitolata “Docker run”# Si avvia istantaneamente, nessun modellodocker run -d --name anonimal -p 8920:8000 \ ghcr.io/diegoparras/anonimal-svc:lite# Carica il modello in RAM al primo avvio — concedigli un momentodocker run -d --name anonimal -p 8920:8000 \ ghcr.io/diegoparras/anonimal-svc:latestPrimo avvio
Sezione intitolata “Primo avvio”Controlla lo stato di salute, poi anonimizza un campione. La UI web è servita allo stesso indirizzo.
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"}'Sull’immagine full, /health risponde immediatamente mentre il modello si carica in
background; ml.ready passa a true una volta che il checkpoint è pronto. La UI risiede a
http://localhost:8920.
Configurazione: motore regex vs ML
Sezione intitolata “Configurazione: motore regex vs ML”La variabile ANONIMAL_ENGINE seleziona il motore di rilevamento:
auto(predefinito) — usa ML se è pronto, altrimenti ricade su lite.lite— solo regex (strutturati + documenti LATAM). Sempre disponibile.ml— forza il motore OpenAI Privacy Filter (restituisce503se non è disponibile, ad es. sull’immagine lite).
OPF_DEVICE (solo immagine full) commuta il motore ML tra cpu e cuda.
Variabili d’ambiente
Sezione intitolata “Variabili d’ambiente”| Variabile | Predefinito | Scopo |
|---|---|---|
ANONIMAL_ENGINE | auto | Selezione del motore: auto · lite · ml. |
ANONIMAL_MODE | pseudo | Modalità di sostituzione predefinita per l’API / la UI. |
ANONIMAL_TOKEN | (vuoto) | Token di servizio. Se impostato, ogni richiesta deve includerlo (Authorization: Bearer o X-Anonimal-Token). |
ANON_HASH_KEY | (casuale per processo) | Chiave per la modalità hash; impostala per pseudonimi stabili tra i riavvii. |
ANONIMAL_MAX_CHARS | 500000 | Lunghezza massima dell’input (oltre la quale restituisce 413). |
ANONIMAL_MAX_PDF_BYTES | 26214400 (25 MB) | Dimensione massima del PDF per l’oscuramento. |
OPF_DEVICE | cpu | cpu o cuda (solo immagine full). |
OPF_CHECKPOINT | (predefinito) | Percorso di un checkpoint OPF personalizzato (solo immagine full). |
Sicurezza
Sezione intitolata “Sicurezza”Progettato per girare in locale. Se lo esponi su una rete: imposta ANONIMAL_TOKEN
(obbligatorio su ogni richiesta) e metti davanti un reverse proxy TLS. L’immagine gira
come utente non-root e applica limiti di dimensione (ANONIMAL_MAX_CHARS). All’interno
dell’ecosistema, mantieni Anonimal sulla rete interna senza dominio pubblico e lascia
che Escriba lo raggiunga tramite hostname interno.