Guia de instalação

Requisitos, compilação do código-fonte, instalação de um binário pré-compilado, verificação de checksums e notas para executar o nostrfy no FreeBSD.

Requisitos

  • Uma toolchain Rust estável recente (necessária apenas para compilar o relay).
  • Uma máquina Linux.
  • Recomenda-se 2 GB de RAM ou mais — para um VPS de 0,25 vCPU / 512 MB, veja a nota de poucos recursos abaixo.

VPS de poucos recursos (0,25 vCPU / 512 MB)

O nostrfy foi verificado como estável mesmo quando o banco excede a RAM. O mapa LMDB é uma reserva virtual esparsa de 1 TiB — o disco físico só cresce com os dados gravados — e a memória do processo permanece estável: um relay com banco de 252 MB usava 7,9 MB de RSS privado (o restante é cache de arquivos recuperável que o kernel descarta sob pressão).

Em um VPS minúsculo, uma configuração faz a maior diferença:

toml
[database]
search_index = false   # reduz o banco pela metade e economiza CPU/IO
ConfiguraçãoEfeitoMedido
search_index = falseDesativa o índice de palavras NIP-50 — a pesquisa continua funcionando (palavras inteiras) mas é mais lenta41,8 MB → 20,5 MB por 10.000 eventos
PadrõesJá ajustado para pouca memóriaNenhuma alteração necessária para 512 MB

Compilar do código-fonte

sh
git clone https://github.com/iqbqioza/nostrfy.git
cd nostrfy
cargo build --release

Quando a compilação termina, o binário fica em target/release/nostrfy.

Instalar um binário pré-compilado

O fluxo de release anexa binários pré-compilados para Linux x86_64, Linux aarch64 e FreeBSD x86_64. O mesmo install.sh funciona nos dois sistemas — detecta a plataforma, baixa o binário correspondente e verifica seu checksum:

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

FreeBSD

O nostrfy compila e roda no FreeBSD 13.x e 14.x (amd64). Instale o Rust e compile com:

sh
pkg install -y rust
cargo build --release

Notas de plataforma:

  • start/stop/restart — a verificação de processo ativo usada por esses comandos lê o nome do processo via sysctl kern.proc.pid.<pid>.comm (no Linux usa /proc/<pid>/comm), então um arquivo pid obsoleto cujo pid foi reutilizado por outro programa é detectado em ambas as plataformas.
  • nostrfy start vira daemon como no Linux; o daemon de fork duplo padrão funciona com a integração rc (service nostrfy start).
  • A verificação de min_free_bytes usa statvfs, que ambos os sistemas fornecem; nenhum outro código específico de plataforma é usado (o relay em si é Rust assíncrono puro sobre tokio).

Execução na porta 80

Usuários comuns não podem vincular a porta 80. Execute com sudo ou use uma porta mais alta, como 8080.

sh
nostrfy --config nostrfy.toml start

Exemplo: execução na porta 8080 (válido para usuários comuns; altere antes a porta na configuração).

Próximo
O nostrfy está instalado. Siga o início rápido.