Guida all’installazione

Requisiti, compilazione dai sorgenti, installazione di un binario precompilato, verifica dei checksum e note per eseguire nostrfy su FreeBSD.

Requisiti

  • Una toolchain Rust stabile recente (necessaria solo per compilare il relay).
  • Una macchina Linux.
  • Si consigliano 2 GB di RAM o più — per un VPS da 0,25 vCPU / 512 MB vedi la nota sulle risorse ridotte qui sotto.

VPS con risorse ridotte (0,25 vCPU / 512 MB)

nostrfy è stato verificato come stabile anche quando il database supera la RAM. La mappa LMDB è una prenotazione virtuale sparsa da 1 TiB — il disco fisico cresce solo con i dati scritti — e la memoria del processo resta stabile: un relay con un database da 252 MB occupava 7,9 MB di RSS privato (il resto è cache di file recuperabile che il kernel espelle sotto pressione).

Su un VPS minuscolo, un’impostazione fa la differenza maggiore:

toml
[database]
search_index = false   # dimezza la dimensione del database e risparmia CPU/IO
ImpostazioneEffettoMisurato
search_index = falseDisattiva l’indice parole NIP-50 — la ricerca funziona ancora (parole intere) ma è più lenta41,8 MB → 20,5 MB per 10.000 eventi
PredefinitiGià ottimizzato per poca memoriaNessuna modifica necessaria per 512 MB

Compilare dai sorgenti

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

Al termine della compilazione, il binario si trova in target/release/nostrfy.

Installare un binario precompilato

Il flusso di release allega binari precompilati per Linux x86_64, Linux aarch64 e FreeBSD x86_64. Lo stesso install.sh funziona su entrambi i sistemi — rileva la piattaforma, scarica il binario corrispondente e ne verifica il checksum:

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

FreeBSD

nostrfy si compila e gira su FreeBSD 13.x e 14.x (amd64). Installa Rust e compila con:

sh
pkg install -y rust
cargo build --release

Note sulla piattaforma:

  • Il controllo di attività del processo usato da start/stop/restart legge il nome del processo tramite kern.proc.pid.<pid>.comm sysctl (su Linux usa /proc/<pid>/comm), quindi un file pid obsoleto il cui pid è stato riutilizzato da un altro programma viene rilevato su entrambe le piattaforme.
  • nostrfy start si avvia come demone come su Linux; il demone standard con doppio fork funziona con l’integrazione rc predefinita (service nostrfy start).
  • Il controllo min_free_bytes di Blossom usa statvfs, fornito da entrambi i sistemi; non viene usato altro codice specifico per piattaforma (il relay stesso è puro Rust asincrono su tokio).

Esecuzione sulla porta 80

Gli utenti normali non possono occupare la porta 80. Esegui con sudo oppure usa una porta più alta come 8080.

sh
nostrfy --config nostrfy.toml start

Esempio: esecuzione sulla porta 8080 (funziona per gli utenti normali; cambia prima la porta nella configurazione).

Passi successivi
nostrfy è installato. Segui la guida di avvio rapido.