コンテンツにスキップ

notarum の導入

notarum は単一の Docker イメージで、外部サービスを一切必要としません。バイナリは静的リンクで 約 38 MB、すべてを内蔵しています——リーダー、API、MCP サーバー、OpenAPI 契約。

Docker

サポートされている方法。ほかに入れるものはありません。ランタイムもビルド手順も外部リソースも不要です。

データの置き場所

マウントしたボリューム、または Postgres データベース。どちらもないと次のデプロイですべて失われます ——下記参照。

約 1 GB のメモリ

国家法令の検索インデックスを有効にする場合のみ。42 万 8 千件をメモリに保持します。無効なら はるかに少なくて済みます。

Postgres が向いている理由は二つ。ディスクに何も書かないのでバックアップはデータベース側の話であり すでに解決済みであること。そして一括書き込みがバッチで走ること——同期が 100 万行以上を書くときに これが効きます。

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=you@example.com \
-e NOTARUM_ADMIN_CLAVE='あなた自身の長いパスワード' \
ghcr.io/diegoparras/notarum:latest

contrib を含む Postgres 13 以上なら何でも動きます。unaccentto_tsvector('spanish', …) が、 アクセント記号を無視した検索を成り立たせています。pgvector/pgvector:pg17 イメージは公式イメージの 上に作られており、両方を備えているので good choice です。

http://localhost:8080 を開けば、もう今日の官報を読んでいます。

  1. 環境変数で指定した管理アカウントでサインインします。パスワードを設定していない場合は生成され、 ログに一度だけ出力されます。

  2. /adminパネルを開きます。ストレージについての表示を確認してください。新しいボリュームでは 「空で起動した」と出ますが、初回はそれで正しいです。デプロイ後も同じ表示なら、データが保持されて いません。

  3. 目録を同期します。「InfoLEG を同期」は数分かかり、42 万 8 千件の国家法令と改正関係を取得します。 「州法令をダウンロード」は数秒です。

  4. 必要な期間の官報を埋めます。各公告の全文まで取ると大幅に時間がかかります——公告ごとに 1 リクエスト、 官報が許容する速度で——が、検索が要旨だけでなく本文まで届くのはこのためです。

  5. アカウントから API と MCP 用のトークンを作成します。

以降は自動で回ります。目録は毎日更新され、官報は毎週土曜の午前 4 時に一週間分をまとめて取得します。

すべてに妥当な既定値があります。効くのは次のものです。

変数役割
NOTARUM_ALMACENdiscosqlitepostgres
NOTARUM_POSTGRES_DSN接続文字列全体。または _HOST_BASE_USUARIO_CLAVE に分けて指定
NOTARUM_ADMIN_USUARIO / _CLAVE管理アカウント。ここにパスワードを置けば必ず入り直せます
NOTARUM_ACCESOabiertomixtocerrado。パネルから即時に変更も可能
NOTARUM_BUSCADOR_INFOLEG国家法令検索を有効化。約 480 MB のメモリを使うため既定は無効
NOTARUM_ACTUALIZAR_A_LAS目録更新の時刻。既定は 05:00
NOTARUM_BOLETIN_A_LAS官報の週次取得の時刻。既定は土曜の 04:00
NOTARUM_ZONAそれらの時刻のタイムゾーン。既定は America/Argentina/Buenos_Aires
NOTARUM_MEMORIA_MAX1GB のような上限。未設定ならコンテナから読み取ります
NOTARUM_AUTHfederado でサインインを Lockatus に委譲。ローカルのフォームと併存します

はい/いいえの変数は 1/0si/notrue/falseon/off を解釈します。

SQLite から Postgres へ移っても、目録を取り直す必要はありません。

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

新しいエンジンの設定を入れた状態で、古い方を移行元として実行します。期限切れのエントリは持ち越さず、 検索インデックスは翻訳ではなく再構築されます。