Guía de instalación
Requisitos, compilación desde el código fuente, instalación de un binario precompilado, verificación de sumas de comprobación y notas para ejecutar nostrfy en FreeBSD.
Requisitos
- Un toolchain de Rust estable y reciente (solo necesario para compilar el relé).
- Máquina Linux.
- Se recomiendan 2 GB de RAM o más — para un VPS de 0,25 vCPU / 512 MB, consulta la nota de bajos recursos de abajo.
VPS de bajos recursos (0,25 vCPU / 512 MB)
nostrfy se ha verificado como estable incluso cuando la base de datos supera la RAM. El mapa LMDB es una reserva virtual dispersa de 1 TiB — el disco físico solo crece con los datos escritos — y la memoria del proceso se mantiene estable: un relé con una base de 252 MB ocupaba 7,9 MB de RSS privado (el resto es caché de archivos reclamable que el kernel expulsa bajo presión).
En un VPS diminuto, un ajuste marca la mayor diferencia:
[database]
search_index = false # reduce la base a la mitad y ahorra CPU/IO| Ajuste | Efecto | Medido |
|---|---|---|
search_index = false | Desactiva el índice de palabras NIP-50 — la búsqueda sigue funcionando (palabras completas) pero es más lenta | 41,8 MB → 20,5 MB por 10.000 eventos |
| Valores predeterminados | Ya optimizado para poca memoria | No se necesita ningún cambio para 512 MB |
Compilar desde el código fuente
git clone https://github.com/iqbqioza/nostrfy.git
cd nostrfy
cargo build --releaseCuando termina la compilación, el binario está en target/release/nostrfy.
Instalar un binario precompilado
El flujo de publicación adjunta binarios precompilados para Linux x86_64, Linux aarch64 y FreeBSD x86_64. El mismo install.sh funciona en ambos sistemas — detecta la plataforma, descarga el binario correspondiente y verifica su suma de comprobación:
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | shFreeBSD
nostrfy se compila y ejecuta en FreeBSD 13.x y 14.x (amd64). Instala Rust y compila con:
pkg install -y rust
cargo build --releaseNotas de plataforma:
- La comprobación de proceso vivo que usan
start/stop/restartlee el nombre del proceso vía el sysctlkern.proc.pid.<pid>.comm(en Linux usa/proc/<pid>/comm), por lo que un archivo pid obsoleto cuyo pid fue reutilizado por otro programa se detecta en ambas plataformas. nostrfy startse ejecuta como demonio igual que en Linux; el demonio clásico de doble fork funciona con la integraciónrcpor defecto (service nostrfy start).- La comprobación de
min_free_bytesde Blossom usastatvfs, que ambos sistemas proporcionan; no se usa ningún otro código específico de plataforma (el relé es Rust asíncrono puro sobre tokio).
Ejecución en el puerto 80
Los usuarios normales no pueden enlazar el puerto 80. Ejecútalo con sudo o usa un puerto más alto como 8080.
nostrfy --config nostrfy.toml startEjemplo: ejecución en el puerto 8080 (válido para usuarios normales; cambia antes el puerto en la configuración).