Rust · MIT o Apache-2.0 · última versión v0.1.16

El relé Nostr que nunca se cae.

nostrfy es un motor de servidor de relé Nostr todo en uno. Rápido por diseño, ligero por naturaleza, potente por defecto. Instalación en una línea, configuración en un solo archivo TOML y ejecución en prácticamente cualquier VPS.

más de 36 NIP del lado del relé Linux · FreeBSD · contenedores Un binario, sin dependencias

Instalación en una línea

El script de instalación detecta tu sistema operativo y arquitectura, descarga el binario precompilado correspondiente, verifica su suma SHA-256 y lo coloca en tu PATH. Sin clonar, sin compilar y sin sudo.

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

sin sudo

Se instala en ~/.local/bin, ~/bin o ~/.cargo/bin — el primero que ya esté en el PATH.

Linux + FreeBSD

Binarios precompilados para Linux x86_64 y aarch64, además de FreeBSD x86_64.

Suma de comprobación verificada

La suma de comprobación de la versión se obtiene y verifica antes de que el binario toque el disco.

Versión específica
sh
VERSION=v0.1.16 curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh
Instalar en todo el sistema
sh
INSTALL_DIR=/usr/local/bin sudo curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh
Sobrescribir el existente
sh
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh -s -- --force
Compilar desde el código fuente
sh
git clone https://github.com/iqbqioza/nostrfy.git && cd nostrfy && cargo build --release

¿Migras desde strfry?

Trae tus eventos existentes con un solo comando — sin conexión, verificado y seguro de repetir.

Guía de migración

En marcha en menos de un minuto

nostrfy incluye un demonio, un validador de configuración, estadísticas en vivo, rotación de registros y recarga en caliente — todo lo que necesita un operador, en un solo binario.

  • nostrfy init escribe un nostrfy.toml predeterminado con todos los comentarios
  • nostrfy check valida la configuración antes de arrancar
  • SIGHUP recarga la mayoría de los ajustes sin reiniciar
  • nostrfy upgrade actualiza el binario a la última versión
Abrir la guía de inicio
sh
nostrfy init
# escribe un nostrfy.toml predeterminado y sale
sh
nostrfy start
# ejecuta el relé como demonio
sh
nostrfy stats
# conexiones, eventos, tamaño de la base
sh
curl http://localhost:8080/health
# {"status":"ok"}

Apunta tu cliente Nostr a ws://<host>:8080 — listo.

Para relés en producción

Cada función responde a dos objetivos: nunca caerse y ser totalmente conforme a las especificaciones. El resultado es un relé que sobrevive a abusos, discos bloqueados y hosts con poca memoria.

Totalmente conforme

Todos los NIP del lado del relé implementados y verificados contra las especificaciones oficiales — más de 36 NIP y el servidor de archivos Blossom.

Nunca se cae

La protección contra sobrecarga, los hilos de lectura dedicados, el aislamiento de pánicos y los límites estrictos de recursos mantienen el relé en servicio bajo abuso sostenido.

Servidor de medios Blossom

Subidas direccionadas por SHA-256 en su propio nombre de host — disco local o buckets compatibles con S3 (AWS S3, Cloudflare R2), con borrado firmado por el propietario.

REST API

Una API /api/v1 de solo lectura para consultar eventos por npub1, nevent1 o naddr1 — su propio hilo de lectura hace que el tráfico REST nunca bloquee a los suscriptores WebSocket.

Persistencia LMDB

Almacenamiento duradero y a prueba de fallos mediante heed. El mapa de memoria se reserva de forma dispersa hasta su límite — sin redimensionado en caliente y con un consumo físico mínimo.

Todo configurable

Todos los ajustes están en nostrfy.toml — sin opciones de compilación. Edita, SIGHUP, listo. Límites, interruptores de NIP, almacenamiento y más.

Funciona tras proxies TLS

nginx, Caddy, Cloudflare Tunnel — se respetan las actualizaciones WebSocket y X-Forwarded-Proto, así que wss:// funciona detrás de cualquier proxy.

Rust + FreeBSD

Un único binario Rust estático para Linux x86_64, Linux aarch64 y FreeBSD x86_64 — verificado en un VPS de 0,25 vCPU / 512 MB.

Rendimiento medido

Compilación release, base de datos nueva, portátil de 8 hilos. La velocidad de escritura está limitada por un único hilo escritor de LMDB y confirmaciones por lotes sin fsync; los lectores nunca lo bloquean.

~21k
eventos/s de entrada
una conexión
100%
Distribución en vivo
10.000 / 10.000 entregas
0,32s
consulta almacenada
20.000 eventos
0,26s
búsqueda NIP-50
10.000 resultados
7,9 MB
RSS privado
con una base de 252 MB

Reproducible con los benchmarks incluidos — consulta notas de rendimiento.

Compatibilidad completa con NIP según la especificación

Todos los NIP del lado del relé están implementados y verificados. La lista publicada en NIP-11 es dinámica — un NIP desaparece automáticamente cuando se bloquean sus kinds.

Referencia completa de NIP
19111317222628293233344042434546475057596265666770777884858687889498A3Blossom

Ejecuta tu propio relé en minutos

Desde el VPS más pequeño hasta una flota global — el binario precompilado, el validador de configuración y las guías de despliegue lo hacen indoloro.

¿Preguntas? FAQ o la comparación entre nostrfy y strfry — y migra con un solo comando.