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).
| Comando | Descrizione |
|---|---|
nostrfy init | Scrive un nostrfy.toml predefinito ed esce; il file viene creato con permessi 0600 |
nostrfy genkey | Genera 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 check | Convalida la configurazione (da eseguire prima dell’avvio) |
nostrfy start | Avvia come demone; --foreground per restare nel terminale |
nostrfy stop | Arresta il demone in esecuzione |
nostrfy restart | Arresta e riavvia (rilegge la configurazione) |
nostrfy stats | Mostra 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-strfry | Importa 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:
nostrfy relay allow npub1...
nostrfy relay deny npub1...
nostrfy relay list
nostrfy blossom allow npub1...
nostrfy blossom deny npub1...
nostrfy blossom listUna 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:
["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.
# 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-dbPropone 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.