Introduction à nostrfy

Ce qu’est nostrfy, ce qu’il fait d’origine et les idées qui sous-tendent le moteur de relais Nostr tout-en-un écrit en Rust.

nostrfy est un serveur relais pour le protocole Nostr. Il stocke les événements envoyés par les clients (posts, réactions, profils…) et les distribue en réponse aux demandes d’abonnement.

Fonctionnalités clés

  • Simple et stable — écrit en Rust ; un seul binaire fait tout.
  • Stockage et recherche rapides — base de données LMDB avec index de recherche plein texte (NIP-50).
  • Large prise en charge des NIP — 36 NIP implémentés, plus le serveur de fichiers Blossom : suppression, preuve de travail, délégation, groupes, recherche et API de gestion.
  • Facile à exploiter — mode démon, rotation des journaux, rechargement à chaud de la configuration (SIGHUP), statistiques en direct, API REST et métriques Prometheus.
  • Migration facile — une commande importe une strfry base de données : essai à blanc, fusion des réglages et réexécutions sûres (guide de migration).

Ce que vous obtenez d’origine

Un seul binaire nostrfy sur un seul port sert :

  • relais WebSocket et le document d’information NIP-11.
  • Une API REST en lecture seule, située à /api/v1/... — son propre thread de lecture garantit que le trafic REST ne bloque jamais les abonnés WebSocket.
  • serveur de fichiers Blossom (hébergement de médias) sur son propre nom d’hôte.
  • RPC de gestion NIP-86, le contrôle de santé et Prometheus /metrics.

Profil de ressources

nostrfy a été vérifié sur un VPS 0,25 vCPU / 512 Mo. La carte mémoire LMDB est une réservation virtuelle creuse de 1 TiB — le disque physique ne grandit qu’avec les données réelles — et la mémoire du processus reste stable : un relais avec une base de 252 Mo n’occupait que 7,9 Mo de RSS privé.

Un aperçu rapide

Trois commandes pour installer, initialiser et démarrer :

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

Vérifiez ensuite que le relais est en marche :

sh
curl http://127.0.0.1:8080/health

Puis récupérez son document NIP-11 :

sh
curl -H "Accept: application/nostr+json" http://127.0.0.1:8080/
Où aller ensuite
Suivez le démarrage rapide pour votre première exécution, ou passez directement à la référence de configuration pour régler le relais.