Docker
受支持的方式。不需要安装别的:没有运行时,没有构建步骤,没有第三方资源。
notarum 是单一 Docker 镜像,不需要任何外部服务。二进制文件是静态的,约 38 MB,把一切都带在里面: 阅读器、API、MCP 服务和 OpenAPI 契约。
Docker
受支持的方式。不需要安装别的:没有运行时,没有构建步骤,没有第三方资源。
存放数据的地方
一个挂载卷,或者一个 Postgres 数据库。两者都没有的话,下一次部署就会丢光——见下文。
约 1 GB 内存
仅当你开启国家法规检索索引时才需要,它会把 42.8 万条法规放在内存里。不开的话要少得多。
Postgres 更合适,原因有二:不往磁盘写任何东西,所以备份是数据库的事,而且早就解决了;批量写入按批提交, 当一次同步要写超过一百万行时,这一点很关键。
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+ 都可以:unaccent 和 to_tsvector('spanish', …) 是让检索忽略重音的关键。
pgvector/pgvector:pg17 镜像是个不错的选择,它基于官方镜像构建,两样都带。
docker run -d -p 8080:8080 \ -v notarum-datos:/datos \ -e NOTARUM_ALMACEN=sqlite \ -e NOTARUM_ADMIN_USUARIO=you@example.com \ -e NOTARUM_ADMIN_CLAVE='一个你自己的长密码' \ ghcr.io/diegoparras/notarum:latest最简单的引擎,适合试用。它按日期提供数据但不建索引,因此全文检索会去问公报,而不是本地作答。
docker run -d -p 8080:8080 -v notarum-datos:/datos \ ghcr.io/diegoparras/notarum:latest打开 http://localhost:8080,你已经在读今天的公报了。
登录,使用环境变量里配置的管理账号。如果你没有设置密码,会生成一个并在日志中只打印一次。
打开面板 /admin。看它对存储的说明:全新的卷上会说它是空着启动的,第一次这样是对的。
如果部署之后还这么说,说明你的数据没有被保留。
同步目录。《同步 InfoLEG》需要几分钟,会带来 42.8 万条国家法规以及修改关系。 《下载省级法规》只需几秒。
补齐公报你关心的时间段。带上每则公告的全文会慢得多——每则公告一个请求,按公报能接受的节奏—— 但这正是让检索深入正文而不只是摘要的原因。
从你的账号创建一个令牌,供 API 和 MCP 使用。
之后它会自己运转:目录每天刷新,公报每周六凌晨 4 点下载整整一周。
一切都有合理的默认值。真正重要的这些:
| 变量 | 作用 |
|---|---|
NOTARUM_ALMACEN | disco、sqlite 或 postgres |
NOTARUM_POSTGRES_DSN | 完整连接串,或使用 _HOST、_BASE、_USUARIO、_CLAVE 分开配置 |
NOTARUM_ADMIN_USUARIO / _CLAVE | 管理账号。密码写在这里,就永远能重新进来 |
NOTARUM_ACCESO | abierto、mixto 或 cerrado。也可以在面板里即时修改 |
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_MAX | 内存上限,例如 1GB。未设置时从容器读取 |
NOTARUM_AUTH | federado 把登录交给 Lockatus,与本地表单并存 |
是/否类变量支持 1/0、si/no、true/false 和 on/off。
从 SQLite 换到 Postgres,不必重新下载目录:
notarum migrar --origen sqlite --db /datos/notarum.db在新引擎的配置就位、旧引擎作为来源的情况下运行。过期条目不会被带过去,检索索引是重建而不是翻译的。