Rust · MIT ou Apache-2.0 · última versão v0.1.16

O relay Nostr que nunca cai.

nostrfy é um motor de servidor de relay Nostr tudo-em-um. Rápido por design, leve por natureza, poderoso por padrão. Instalação em uma linha, configuração em um único arquivo TOML e execução em praticamente qualquer VPS.

mais de 36 NIP do lado do relay Linux · FreeBSD · contêineres Um binário, sem dependências

Instalação em uma linha

O script de instalação detecta seu sistema operacional e arquitetura, baixa o binário pré-compilado correspondente, verifica seu checksum sha256 e o coloca no seu PATH. Sem clonar, sem compilar e sem sudo.

sh
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh

sem sudo

Instala em ~/.local/bin, ~/bin ou ~/.cargo/bin — o primeiro que já estiver no PATH.

Linux + FreeBSD

Binários pré-compilados para Linux x86_64 e aarch64, além de FreeBSD x86_64.

Checksum verificado

O checksum da release é obtido e verificado antes que o binário toque o disco.

Versão específica
sh
VERSION=v0.1.16 curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh
Instalar para todo o sistema
sh
INSTALL_DIR=/usr/local/bin sudo curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh
Sobrescrever o existente
sh
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh -s -- --force
Compilar a partir do código-fonte
sh
git clone https://github.com/iqbqioza/nostrfy.git && cd nostrfy && cargo build --release

Migrando do strfry?

Traga seus eventos existentes com um comando — offline, verificado e seguro de repetir.

Guia de migração

No ar em menos de um minuto

O nostrfy inclui um daemon, um validador de configuração, estatísticas ao vivo, rotação de logs e recarga a quente — tudo o que um operador precisa, em um único binário.

  • nostrfy init grava um nostrfy.toml padrão totalmente comentado
  • nostrfy check valida a configuração antes de iniciar
  • SIGHUP recarrega a maioria das configurações sem reiniciar
  • nostrfy upgrade atualiza o binário para a última versão
Abrir o guia de início rápido
sh
nostrfy init
# grava um nostrfy.toml padrão e sai
sh
nostrfy start
# executa o relay como daemon
sh
nostrfy stats
# conexões, eventos, tamanho do banco
sh
curl http://localhost:8080/health
# {"status":"ok"}

Aponte seu cliente Nostr para ws://<host>:8080 — pronto.

Para relays em produção

Cada recurso segue dois objetivos: nunca cair e ser totalmente compatível com as especificações. O resultado é um relay que resiste a abusos, discos travados e hosts com pouca memória.

Totalmente compatível

Todos os NIP do lado do relay implementados e verificados contra as especificações oficiais — mais de 36 NIP e o servidor de arquivos Blossom.

Nunca cai

Proteção contra sobrecarga, threads de leitura dedicados, isolamento de pânicos e limites rígidos de recursos mantêm o relay em serviço sob abuso contínuo.

Servidor de mídia Blossom

Uploads endereçados por SHA-256 em seu próprio hostname — disco local ou buckets compatíveis com S3 (AWS S3, Cloudflare R2), com exclusão assinada pelo proprietário.

REST API

Uma API /api/v1 somente leitura para consultar eventos por npub1, nevent1 ou naddr1 — seu próprio thread de leitura impede que o tráfego REST bloqueie os assinantes WebSocket.

Persistência em LMDB

Armazenamento durável e à prova de falhas via heed. O mapa de memória é reservado de forma esparsa até o limite — sem redimensionamento em tempo de execução e com consumo físico mínimo.

Tudo configurável

Todas as opções ficam no nostrfy.toml — sem opções de compilação. Edite, SIGHUP, pronto. Limites, chaves de NIP, armazenamento e mais.

Funciona atrás de proxies TLS

nginx, Caddy, Cloudflare Tunnel — upgrades WebSocket e X-Forwarded-Proto são respeitados, então wss:// funciona atrás de qualquer proxy.

Rust + FreeBSD

Um único binário Rust estático para Linux x86_64, Linux aarch64 e FreeBSD x86_64 — verificado em um VPS de 0,25 vCPU / 512 MB.

Desempenho medido

Build de release, banco novo, notebook de 8 threads. A velocidade de escrita é limitada por um único thread de escrita do LMDB e commits em lote sem fsync; os leitores nunca o bloqueiam.

~21k
eventos/s de entrada
uma conexão
100%
Distribuição ao vivo
10.000 / 10.000 entregas
0.32s
consulta armazenada
20.000 eventos
0.26s
pesquisa NIP-50
10.000 resultados
7.9 MB
RSS privado
com um banco de 252 MB

Reproduzível com os benchmarks incluídos — veja notas de desempenho.

Suporte completo a NIP conforme a especificação

Todos os NIP do lado do relay estão implementados e verificados. A lista publicada no NIP-11 é dinâmica — um NIP sai automaticamente quando seus kinds são bloqueados.

Referência completa de NIP
19111317222628293233344042434546475057596265666770777884858687889498A3Blossom

Execute seu próprio relay em minutos

Do menor VPS a uma frota global — o binário pré-compilado, o validador de configuração e os guias de implantação tornam tudo indolor.

Dúvidas? Veja o FAQ ou a comparação entre nostrfy e strfry — e migre com um comando.