Referencia de comandos

Todos los comandos de nostrfy: init, start, stop, stats, upgrade y migrate-strfry, además de las listas de acceso de la CLI y los filtros de suscripción inbox/outbox.

Resumen

Todos los comandos aceptan --config <path> (por defecto nostrfy.toml).

ComandoDescripción
nostrfy initEscribe un nostrfy.toml predeterminado y sale; el archivo se crea con 0600
nostrfy genkeyGenera una clave secreta para grupos NIP-29, la escribe en relay.private_key, pone la configuración en 0600 e imprime la clave pública; si el archivo cambió desde su lectura, aborta sin escribir
nostrfy checkValida la configuración (ejecútalo antes de arrancar)
nostrfy startArranca como demonio; --foreground lo ejecuta en la terminal
nostrfy stopDetiene el demonio en marcha
nostrfy restartDetiene y vuelve a arrancar (relee la configuración)
nostrfy statsMuestra estadísticas en vivo
nostrfy upgrade [version]Actualiza el binario a la última release de GitHub (o a la versión indicada); descarga el asset de la plataforma, verifica su suma SHA-256 y una prueba con --version, y luego sustituye el binario de forma atómica; las ejecuciones concurrentes se serializan con un archivo de bloqueo; sin versión indicada nunca se degrada; --force lo reinstala
nostrfy migrate-strfryImporta eventos de un relé strfry — ya sea ejecutando strfry export mediante --strfry-db, leyendo un archivo JSONL con --input o aceptando la entrada por stdin; repetible, con --dry-run, --since y la fusión opcional de ajustes

Gestionar las listas de acceso

Las listas allow/deny del relé y la allowlist de subidas de Blossom viven en LMDB y se aplican al instante — el demonio en marcha se recarga automáticamente:

sh
nostrfy relay allow npub1...
nostrfy relay deny npub1...
nostrfy relay list

nostrfy blossom allow npub1...
nostrfy blossom deny npub1...
nostrfy blossom list

Una clave denegada siempre se rechaza al publicar y nunca se sirve al leer.

nostrfy access unblockip <ip> Elimina una IP de la lista persistida de IP bloqueadas por NIP-86 (recuperación tras autobloqueo); reinicia el demonio para aplicarlo.

Filtros de suscripción inbox/outbox

nostrfy amplía la sintaxis de filtros REQ para el modelo de enrutamiento inbox/outbox con dos claves prácticas — una extensión de nostrfy, no parte de ningún NIP. "outbox" se expande a "authors": solo los eventos creados por esa clave. "inbox" se expande a "#p": solo los eventos dirigidos a esa clave (menciones, respuestas, zaps y MPs). Los valores pueden ser hex de 64 caracteres o npub1 o arrays que se fusionan con una clave authors/#p existente; una clave inválida rechaza la suscripción:

jsonc
["REQ", "my-feed", {"outbox": "npub1..."}]
["REQ", "mentions", {"inbox": "npub1...", "kinds": [1, 7]}]

Los endpoints también tienen restricción de escritura: /outbox solo acepta eventos creados por la clave autenticada NIP-42 de la conexión (server.outbox_write_policy = "any"), o solo los eventos del propio relé ("relay"); /inbox solo acepta eventos que llevan una etiqueta p.

Migrar desde strfry

Un solo comando trae los eventos de un relé strfry existente. La migración es offline (detén antes el relé nostrfy — se niega a ejecutarse si la base está en uso), lee el propio formato de exportación de strfry y es segura de repetir: los duplicados se omiten y los efectos de borrado se reaplican.

sh
# primero un dry-run — verifica cada evento y no escribe nada
nostrfy migrate-strfry --strfry-db /var/lib/strfry-db --dry-run

# importación (detén antes el relé nostrfy)
nostrfy migrate-strfry --strfry-db /var/lib/strfry-db

También ofrece fusionar los ajustes equivalentes de strfry en nostrfy.toml, y tras una interrupción con --since reanudar. Los grupos NIP-29 y los roles NIP-43 se reconstruyen desde los eventos importados en el primer arranque. El manual completo está en la guía de migración.

Paso a paso
La mayoría de los comandos también se explican paso a paso en la guía de inicio rápido.