Instalar Anonimal
Anonimal corre local / autoalojado: los datos nunca salen de tu infraestructura. La imagen se publica en GitHub Container Registry y expone el puerto 8000 dentro del contenedor.
Elige una imagen
Sección titulada «Elige una imagen»Hay dos imágenes. Elige según cobertura versus peso.
| Imagen | Tag | Tamaño | Detecta | Cuándo |
|---|---|---|---|---|
| full (ML) | :latest, :<ver> | ~6-7 GB imagen + ~3 GB RAM | estructurado + nombres / direcciones (OPF) | máxima cobertura; reemplazando el Anonimal del ecosistema |
| lite (regex) | :lite, :<ver>-lite | decenas de MB | solo estructurado (correo, teléfono, tarjeta, DNI, CUIT, CBU, secretos) | liviano, sin ML; no ve nombres en texto libre |
Requisitos
Sección titulada «Requisitos»- Docker (el único requisito obligatorio).
- lite: unas pocas decenas de MB de disco y RAM mínima. Arranca al instante.
- full: ~6-7 GB de disco y ~3 GB de RAM para el modelo residente; está limitado por CPU. Dale al contenedor aproximadamente 6 GB de RAM.
Docker run
Sección titulada «Docker run»# Arranca al instante, sin modelodocker run -d --name anonimal -p 8920:8000 \ ghcr.io/diegoparras/anonimal-svc:lite# Carga el modelo en RAM en el primer arranque — dale un momentodocker run -d --name anonimal -p 8920:8000 \ ghcr.io/diegoparras/anonimal-svc:latestPrimer arranque
Sección titulada «Primer arranque»Verifica el estado, luego anonimiza una muestra. La interfaz web se sirve en la misma dirección.
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"}'En la imagen full, /health responde de inmediato mientras el modelo carga en
segundo plano; ml.ready cambia a true una vez que el checkpoint está caliente. La interfaz vive en
http://localhost:8920.
Configuración: motor regex vs ML
Sección titulada «Configuración: motor regex vs ML»La variable ANONIMAL_ENGINE selecciona el motor de detección:
auto(por defecto) — usa ML si está listo, de lo contrario recurre a lite.lite— solo regex (estructurado + identificadores LATAM). Siempre disponible.ml— fuerza el motor OpenAI Privacy Filter (devuelve503si no está disponible, p. ej. en la imagen lite).
OPF_DEVICE (solo imagen full) alterna el motor ML entre cpu y cuda.
Variables de entorno
Sección titulada «Variables de entorno»| Variable | Por defecto | Propósito |
|---|---|---|
ANONIMAL_ENGINE | auto | Selección de motor: auto · lite · ml. |
ANONIMAL_MODE | pseudo | Modo de reemplazo por defecto para la API / interfaz. |
ANONIMAL_TOKEN | (vacío) | Token de servicio. Si se define, cada solicitud debe llevarlo (Authorization: Bearer o X-Anonimal-Token). |
ANON_HASH_KEY | (aleatoria por proceso) | Clave para el modo hash; defínela para seudónimos estables entre reinicios. |
ANONIMAL_MAX_CHARS | 500000 | Longitud máxima de entrada (por encima devuelve 413). |
ANONIMAL_MAX_PDF_BYTES | 26214400 (25 MB) | Tamaño máximo de PDF para redacción. |
OPF_DEVICE | cpu | cpu o cuda (solo imagen full). |
OPF_CHECKPOINT | (por defecto) | Ruta a un checkpoint OPF personalizado (solo imagen full). |
Seguridad
Sección titulada «Seguridad»Diseñado para correr local. Si lo expones en una red: define ANONIMAL_TOKEN
(obligatorio en cada solicitud) y pon un proxy inverso con TLS por delante. La imagen corre
como un usuario non-root y aplica límites de tamaño (ANONIMAL_MAX_CHARS). Dentro del
ecosistema, mantén a Anonimal en la red interna sin dominio público y deja que
Escriba lo alcance por hostname interno.