Ir al contenido

Instalar notarum

notarum es una sola imagen de Docker y no necesita ningún servicio externo. El binario es estático, pesa unos 38 MB y trae todo adentro: el lector, la API, el servidor MCP y el contrato OpenAPI.

Docker

El camino soportado. Nada más que instalar: sin runtime, sin build, sin recursos de terceros.

Dónde guardar los datos

Un volumen montado, o una base Postgres. Sin una de las dos se pierde todo en el próximo despliegue — ver más abajo.

Alrededor de 1 GB de RAM

Sólo si encendés el buscador de normativa nacional, que tiene 428 mil normas en memoria. Sin eso, bastante menos.

Postgres conviene por dos motivos: no se escribe nada en disco, así que los respaldos son problema de tu base y ya están resueltos; y las escrituras masivas van por lotes, que importa cuando una sincronización escribe más de un millón de filas.

Ventana de terminal
docker run -d -p 8080:8080 \
-e NOTARUM_ALMACEN=postgres \
-e NOTARUM_POSTGRES_DSN='postgres://usuario:clave@host:5432/notarum?sslmode=disable' \
-e NOTARUM_ADMIN_USUARIO=vos@ejemplo.com \
-e NOTARUM_ADMIN_CLAVE='una clave larga tuya' \
ghcr.io/diegoparras/notarum:latest

Sirve cualquier Postgres 13+ con contrib: unaccent y to_tsvector('spanish', …) son lo que hace que buscar sin acentos encuentre. La imagen pgvector/pgvector:pg17 es una buena elección porque está construida sobre la oficial, así que trae las dos cosas.

Abrí http://localhost:8080 y ya estás leyendo el Boletín de hoy.

  1. Entrá con la cuenta de administración de tus variables de entorno. Si no pusiste una clave, se genera una y se imprime una sola vez en el log.

  2. Abrí el panel en /admin. Mirá qué dice del almacén: en un volumen nuevo va a decir que arrancó vacío, y la primera vez está bien. Si sigue diciendo lo mismo después de un despliegue, tus datos no se están guardando.

  3. Sincronizá los catálogos. Sincronizar InfoLEG tarda unos minutos y trae las 428 mil normas nacionales más las relaciones de modificación. Bajar la normativa provincial tarda segundos.

  4. Llená el Boletín del período que te interese. Con el texto de cada aviso tarda mucho más —es un pedido por aviso, al ritmo que el Boletín tolera— pero es lo que hace que la búsqueda llegue al cuerpo y no sólo al sumario.

  5. Creá un token desde tu cuenta, para la API y el MCP.

De ahí en más se maneja solo: los catálogos se actualizan todos los días y el Boletín baja una semana entera los sábados a las 4 de la mañana.

Todo tiene un valor por defecto razonable. Las que importan:

VariableQué hace
NOTARUM_ALMACENdisco, sqlite o postgres
NOTARUM_POSTGRES_DSNLa cadena de conexión entera, o usá las piezas _HOST, _BASE, _USUARIO, _CLAVE
NOTARUM_ADMIN_USUARIO / _CLAVELa cuenta que administra. Poniendo la clave acá siempre podés volver a entrar
NOTARUM_ACCESOabierto, mixto o cerrado. También se cambia desde el panel, en el acto
NOTARUM_BUSCADOR_INFOLEGEnciende la búsqueda nacional. Cuesta unos 480 MB de memoria, por eso se pide
NOTARUM_ACTUALIZAR_A_LASCuándo se actualizan los catálogos. Por defecto 05:00
NOTARUM_BOLETIN_A_LASCuándo corre la bajada semanal del Boletín. Por defecto 04:00, los sábados
NOTARUM_ZONALa zona horaria de esas horas. Por defecto America/Argentina/Buenos_Aires
NOTARUM_MEMORIA_MAXUn techo como 1GB. Si no está, se lee del contenedor
NOTARUM_AUTHfederado delega la entrada en Lockatus, al lado del formulario propio

Las variables de sí o no entienden 1/0, si/no, true/false y on/off.

Pasar de SQLite a Postgres no cuesta volver a bajar los catálogos:

Ventana de terminal
notarum migrar --origen sqlite --db /datos/notarum.db

Se corre con la configuración del motor nuevo puesta y el viejo como origen. Lo vencido no se arrastra, y el índice de búsqueda se rearma en vez de traducirse.