Pular para o conteúdo

Instalar o notarum

O notarum é uma única imagem Docker e não precisa de nenhum serviço externo. O binário é estático, pesa cerca de 38 MB e traz tudo dentro: o leitor, a API, o servidor MCP e o contrato OpenAPI.

Docker

O caminho suportado. Nada mais para instalar: sem runtime, sem build, sem recursos de terceiros.

Onde guardar os dados

Um volume montado, ou um banco Postgres. Sem um dos dois, tudo se perde na próxima implantação — veja abaixo.

Cerca de 1 GB de RAM

Só se você ligar o índice de busca nacional, que mantém 428 mil normas na memória. Sem ele, bem menos.

O Postgres é a melhor escolha por dois motivos: nada é escrito em disco, então os backups são problema do seu banco e já estão resolvidos; e as escritas em massa vão em lotes, o que importa quando uma sincronização escreve mais de um milhão de linhas.

Terminal window
docker run -d -p 8080:8080 \
-e NOTARUM_ALMACEN=postgres \
-e NOTARUM_POSTGRES_DSN='postgres://user:pass@host:5432/notarum?sslmode=disable' \
-e NOTARUM_ADMIN_USUARIO=voce@exemplo.com \
-e NOTARUM_ADMIN_CLAVE='uma senha longa sua' \
ghcr.io/diegoparras/notarum:latest

Serve qualquer Postgres 13+ com contrib: unaccent e to_tsvector('spanish', …) são o que faz a busca ignorar acentos. A imagem pgvector/pgvector:pg17 é uma boa escolha porque é construída sobre a oficial, então traz as duas coisas.

Abra http://localhost:8080 e você já está lendo o Diário de hoje.

  1. Entre com a conta de administração das suas variáveis de ambiente. Se você não definiu uma senha, uma é gerada e impressa uma única vez no log.

  2. Abra o painel em /admin. Veja o que ele diz sobre o armazenamento: num volume novo dirá que começou vazio, e na primeira vez isso está certo. Se disser o mesmo depois de uma implantação, seus dados não estão sendo guardados.

  3. Sincronize os catálogos. Sincronizar InfoLEG leva alguns minutos e traz as 428 mil normas nacionais mais as relações de modificação. Baixar a normativa provincial leva segundos.

  4. Preencha o Diário do período que interessa. Com o texto de cada aviso demora bem mais — é uma requisição por aviso, no ritmo que o Diário tolera — mas é o que faz a busca chegar ao corpo e não só ao sumário.

  5. Crie um token na sua conta, para a API e o MCP.

Daí em diante ele se vira sozinho: os catálogos se atualizam todos os dias e o Diário baixa uma semana inteira aos sábados às 4 da manhã.

Tudo tem um padrão razoável. As que importam:

VariávelO que faz
NOTARUM_ALMACENdisco, sqlite ou postgres
NOTARUM_POSTGRES_DSNA string de conexão inteira, ou use _HOST, _BASE, _USUARIO, _CLAVE
NOTARUM_ADMIN_USUARIO / _CLAVEA conta que administra. Com a senha aqui você sempre consegue voltar a entrar
NOTARUM_ACCESOabierto, mixto ou cerrado. Também mudável pelo painel, na hora
NOTARUM_BUSCADOR_INFOLEGLiga a busca nacional. Custa cerca de 480 MB de memória, por isso é opcional
NOTARUM_ACTUALIZAR_A_LASQuando os catálogos se atualizam. Padrão 05:00
NOTARUM_BOLETIN_A_LASQuando roda a baixa semanal do Diário. Padrão 04:00, aos sábados
NOTARUM_ZONAO fuso dessas horas. Padrão America/Argentina/Buenos_Aires
NOTARUM_MEMORIA_MAXUm teto como 1GB. Lido do contêiner se ausente
NOTARUM_AUTHfederado delega a entrada ao Lockatus, ao lado do formulário próprio

As variáveis de sim ou não entendem 1/0, si/no, true/false e on/off.

Passar de SQLite para Postgres não custa baixar os catálogos de novo:

Terminal window
notarum migrar --origen sqlite --db /datos/notarum.db

Roda com a configuração do motor novo no lugar e o antigo como origem. O que venceu não é arrastado, e o índice de busca é reconstruído em vez de traduzido.