Rust · MIT ou Apache-2.0 · dernière version v0.1.16

Le relais Nostr qui ne tombe jamais.

nostrfy est un moteur de serveur relais Nostr tout-en-un. Rapide par conception, léger par nature, puissant par défaut. Installation en une ligne, configuration dans un seul fichier TOML et exécution sur presque n’importe quel VPS.

plus de 36 NIP côté relais Linux · FreeBSD · conteneurs Un binaire, aucune dépendance

Installation en une ligne

Le script d’installation détecte votre OS et votre architecture, télécharge le binaire précompilé correspondant, vérifie sa somme sha256 et le place dans votre PATH. Ni clonage, ni compilation, ni sudo.

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

sans sudo

Installe dans ~/.local/bin, ~/bin ou ~/.cargo/bin — le premier déjà présent dans le PATH.

Linux + FreeBSD

Binaires précompilés pour Linux x86_64 et aarch64, ainsi que FreeBSD x86_64.

Somme de contrôle vérifiée

La somme de contrôle de la release est récupérée et vérifiée avant que le binaire ne touche le disque.

Version précise
sh
VERSION=v0.1.16 curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh
Installer pour tout le système
sh
INSTALL_DIR=/usr/local/bin sudo curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh
Remplacer l’existant
sh
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh -s -- --force
Compiler depuis les sources
sh
git clone https://github.com/iqbqioza/nostrfy.git && cd nostrfy && cargo build --release

Vous migrez depuis strfry ?

Reprenez vos événements existants en une commande — hors ligne, vérifié et réexécutable sans risque.

Guide de migration

Opérationnel en moins d’une minute

nostrfy fournit un démon, un validateur de configuration, des statistiques en direct, la rotation des journaux et le rechargement à chaud — tout ce dont un opérateur a besoin, dans un seul binaire.

  • nostrfy init écrit un nostrfy.toml par défaut entièrement commenté
  • nostrfy check valide la configuration avant le démarrage
  • SIGHUP recharge la plupart des réglages sans redémarrage
  • nostrfy upgrade met à jour le binaire vers la dernière version
Ouvrir le guide de démarrage
sh
nostrfy init
# écrit un nostrfy.toml par défaut et quitte
sh
nostrfy start
# lance le relais en démon
sh
nostrfy stats
# connexions, événements, taille de la base
sh
curl http://localhost:8080/health
# {"status":"ok"}

Pointez votre client Nostr vers ws://<host>:8080 — terminé.

Pour des relais en production

Chaque fonctionnalité répond à deux objectifs : ne jamais tomber et être entièrement conforme aux spécifications. Le résultat : un relais qui survit aux abus, aux disques bloqués et aux hôtes à mémoire limitée.

Entièrement conforme

Tous les NIP côté relais implémentés et vérifiés par rapport aux spécifications officielles — plus de 36 NIP et le serveur de fichiers Blossom.

Ne tombe jamais

Protection contre la surcharge, threads de lecture dédiés, isolation des panics et limites de ressources strictes maintiennent le relais en service sous abus prolongé.

Serveur multimédia Blossom

Téléversements adressés par SHA-256 sur leur propre nom d’hôte — disque local ou buckets compatibles S3 (AWS S3, Cloudflare R2), avec suppression signée par le propriétaire.

REST API

Une API /api/v1 en lecture seule pour interroger les événements par npub1, nevent1 ou naddr1 — son propre thread de lecture empêche le trafic REST de bloquer les abonnés WebSocket.

Persistance LMDB

Stockage durable et résistant aux crashs via heed. La carte mémoire est réservée de façon creuse jusqu’à sa limite — aucun redimensionnement à chaud, empreinte physique minuscule.

Tout est configurable

Tous les réglages sont dans nostrfy.toml — aucune option de compilation. Modifiez, envoyez SIGHUP, terminé. Limites, interrupteurs NIP, stockage et plus.

Fonctionne derrière un proxy TLS

nginx, Caddy, Cloudflare Tunnel — les mises à niveau WebSocket et X-Forwarded-Proto sont respectées, wss:// fonctionne derrière n’importe quel proxy.

Rust + FreeBSD

Un seul binaire Rust statique pour Linux x86_64, Linux aarch64 et FreeBSD x86_64 — vérifié sur un VPS 0,25 vCPU / 512 Mo.

Performances mesurées

Version release, base de données neuve, portable 8 threads. Le débit d’écriture est limité par un unique thread d’écriture LMDB et des commits groupés sans fsync ; les lecteurs ne le bloquent jamais.

~21k
événements/s en entrée
une connexion
100%
Distribution en direct
10 000 / 10 000 livraisons
0,32s
requête stockée
20 000 événements
0,26s
recherche NIP-50
10 000 résultats
7,9 Mo
RSS privé
avec une base de 252 Mo

Reproductible avec les benchmarks fournis — voir notes de performance.

Prise en charge complète des NIP selon la spécification

Chaque NIP côté relais est implémenté et vérifié. La liste publiée dans NIP-11 est dynamique — un NIP disparaît automatiquement lorsque ses kinds sont bloqués.

Référence complète des NIP
19111317222628293233344042434546475057596265666770777884858687889498A3Blossom

Lancez votre propre relais en quelques minutes

Du plus petit VPS à une flotte mondiale — le binaire précompilé, le validateur de configuration et les guides de déploiement rendent le tout indolore.

Des questions ? FAQ ou la comparaison entre nostrfy et strfry — et migrez en une commande.