Referência de comandos

Todos os comandos do nostrfy: init, start, stop, stats, upgrade e migrate-strfry, além das listas de acesso da CLI e dos filtros de assinatura inbox/outbox.

Visão geral

Todos os comandos aceitam --config <path> (padrão nostrfy.toml).

ComandoDescrição
nostrfy initGrava um nostrfy.toml padrão e sai; o arquivo é criado com 0600
nostrfy genkeyGera uma chave secreta para grupos NIP-29, grava em relay.private_key, define a configuração como 0600 e imprime a chave pública; se o arquivo mudou desde a leitura, aborta sem gravar
nostrfy checkValida a configuração (execute antes de iniciar)
nostrfy startInicia como daemon; --foreground roda no terminal
nostrfy stopPara o daemon em execução
nostrfy restartPara e inicia de novo (relê a configuração)
nostrfy statsMostra estatísticas ao vivo
nostrfy upgrade [version]Atualiza o binário para a última release do GitHub (ou a versão indicada); baixa o asset da plataforma, verifica seu sha256 e executa uma sonda --version, depois substitui o binário de forma atômica; execuções concorrentes são serializadas por arquivo de lock; sem versão indicada nunca faz downgrade; --force força a reinstalação
nostrfy migrate-strfryImporta eventos de um relay strfry — seja executando strfry export via --strfry-db, lendo um arquivo JSONL com --input ou recebendo via stdin; repetível, com --dry-run, --since e a mesclagem opcional de configurações

Gerenciar as listas de acesso

As listas de permissão/bloqueio do relay e a allowlist de upload do Blossom ficam no LMDB e valem imediatamente — o daemon em execução recarrega automaticamente:

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

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

Uma chave negada é sempre rejeitada ao publicar e nunca é servida ao ler.

nostrfy access unblockip <ip> Remove um IP da lista persistida de IPs bloqueados pelo NIP-86 (recuperação de autobloqueio); reinicie o daemon para aplicar.

Filtros de assinatura inbox/outbox

O nostrfy estende a sintaxe de filtros REQ para o modelo de roteamento inbox/outbox com duas chaves práticas — uma extensão do nostrfy, não parte de nenhum NIP. "outbox" se expande para "authors": só eventos criados por essa pubkey. "inbox" se expande para "#p": só eventos endereçados a essa pubkey (menções, respostas, zaps e DMs). Os valores podem ser hex de 64 caracteres ou npub1, ou arrays mesclados a uma chave authors/#p existente; uma pubkey inválida rejeita a assinatura:

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

Os endpoints também têm restrição de escrita: /outbox aceita só eventos criados pela pubkey autenticada via NIP-42 da conexão (server.outbox_write_policy = "any"), ou só eventos do próprio relay ("relay"); /inbox aceita só eventos com tag p.

Migrar do strfry

Um único comando traz os eventos de um relay strfry existente. A migração é offline (pare antes o relay nostrfy — ela se recusa a rodar com o banco em uso), lê o próprio formato de exportação do strfry e é segura de repetir: duplicatas são ignoradas e os efeitos de exclusão são reaplicados.

sh
# primeiro uma simulação — verifica cada evento e não grava nada
nostrfy migrate-strfry --strfry-db /var/lib/strfry-db --dry-run

# importação (pare antes o relay nostrfy)
nostrfy migrate-strfry --strfry-db /var/lib/strfry-db

Também oferece mesclar as configurações equivalentes do strfry em nostrfy.toml, e após uma interrupção dá para retomar com --since. Grupos NIP-29 e papéis NIP-43 são reconstruídos a partir dos eventos importados na primeira inicialização. O manual completo está no guia de migração.

Passo a passo
A maioria dos comandos também é explicada passo a passo no guia de início rápido.