Riferimento dei comandi

Tutti i comandi nostrfy: init, start, stop, stats, upgrade e migrate-strfry, più le liste di accesso della CLI e i filtri di sottoscrizione inbox/outbox.

Panoramica

Tutti i comandi accettano --config <path>(predefinito nostrfy.toml).

ComandoDescrizione
nostrfy initScrive un nostrfy.toml predefinito ed esce; il file viene creato con permessi 0600
nostrfy genkeyGenera una chiave segreta per i gruppi NIP-29, la scrive in relay.private_key, imposta la configurazione su 0600 e stampa la chiave pubblica; se il file è cambiato dopo la lettura, interrompe senza scrivere
nostrfy checkConvalida la configurazione (da eseguire prima dell’avvio)
nostrfy startAvvia come demone; --foreground per restare nel terminale
nostrfy stopArresta il demone in esecuzione
nostrfy restartArresta e riavvia (rilegge la configurazione)
nostrfy statsMostra statistiche in tempo reale
nostrfy upgrade [version]Aggiorna il binario all’ultima release GitHub (o alla versione indicata); scarica l’asset della piattaforma, verifica il suo checksum sha256 ed esegue una prova con --version, poi sostituisce il binario in modo atomico; le esecuzioni concorrenti sono serializzate da un file di lock; senza versione indicata non esegue mai downgrade; --force reinstalla
nostrfy migrate-strfryImporta eventi da un relay strfry — con --strfry-db esegue strfry export, con --input legge un file JSONL o accetta input da stdin; ripetibile, con --dry-run, --since e l’unione opzionale delle impostazioni

Gestire le liste di accesso

Le liste allow/deny del relay e la allowlist di upload Blossom risiedono in LMDB e si applicano subito — il demone in esecuzione viene ricaricato automaticamente:

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

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

Una chiave negata è sempre rifiutata in pubblicazione e mai servita in lettura.

nostrfy access unblockip <ip> rimuove un IP dalla lista persistente di IP bloccati NIP-86 (recupero in caso di auto-blocco); riavvia il demone per applicarla.

Filtri di sottoscrizione inbox/outbox

nostrfy estende la sintassi dei filtri REQ con due chiavi comode per il modello di routing inbox/outbox — un’estensione nostrfy, non parte di alcun NIP. "outbox" si espande in "authors": solo gli eventi creati da quella chiave. "inbox" si espande in "#p": solo gli eventi indirizzati a quella chiave (menzioni, risposte, zap e DM). I valori possono essere esadecimali di 64 caratteri o codici npub1, oppure array uniti a una chiave esistente authors/#p; una chiave non valida fa rifiutare la sottoscrizione:

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

Anche gli endpoint hanno restrizioni in scrittura: /outbox accetta solo eventi creati dalla chiave autenticata con NIP-42 della connessione (server.outbox_write_policy = "any"), oppure solo gli eventi del relay stesso ("relay"); /inbox accetta solo eventi che portano il tag p.

Migrazione da strfry

Un solo comando trasferisce gli eventi di un relay strfry esistente. La migrazione è offline (ferma prima il relay nostrfy — rifiuta di partire con il database occupato), legge il formato di export di strfry ed è sicura da ripetere: i duplicati vengono saltati e gli effetti delle eliminazioni riapplicati.

sh
# prima un dry-run — verifica ogni evento e non scrive nulla
nostrfy migrate-strfry --strfry-db /var/lib/strfry-db --dry-run

# importazione (ferma prima il relay nostrfy)
nostrfy migrate-strfry --strfry-db /var/lib/strfry-db

Propone inoltre di unire le impostazioni strfry equivalenti in nostrfy.toml, e dopo un’interruzione con --since riprendere. I gruppi NIP-29 e i ruoli NIP-43 vengono ricostruiti dagli eventi importati al primo avvio. Il manuale completo è nella guida alla migrazione.

Passo passo
La maggior parte dei comandi è spiegata passo passo anche nella guida di avvio rapido.