Einführung in nostrfy

Was nostrfy ist, was es ab Werk kann und welche Ideen hinter der All-in-One-Nostr-Relay-Server-Engine in Rust stehen.

nostrfy ist ein Relay-Server für das Nostr-Protokoll. Er speichert von Clients gesendete Events (Beiträge, Reaktionen, Profile …) und liefert sie auf Abonnementanfragen hin aus.

Hauptfunktionen

  • Einfach und stabil — in Rust geschrieben; ein Binary erledigt alles.
  • Schneller Speicher und Suche — LMDB-Datenbank mit Volltext-Index (NIP-50).
  • Breite NIP-Unterstützung — 36 NIPs implementiert, plus der Blossom-Dateiserver: Löschung, Proof-of-Work, Delegierung, Gruppen, Suche und eine Verwaltungs-API.
  • Einfach zu betreiben — Daemon-Modus, Log-Rotation, Hot-Reload der Konfiguration (SIGHUP), Live-Statistiken, REST-API und Prometheus-Metriken.
  • Einfache Migration — ein Befehl importiert eine vorhandene strfry Datenbank: Dry-Run, Zusammenführen der Einstellungen und sichere Wiederholungen (Migrationsanleitung).

Was Sie ab Werk erhalten

Ein einzelnes nostrfy-Binary stellt an einem Port bereit:

  • WebSocket-Relay und das NIP-11-Informationsdokument.
  • Ein schreibgeschütztes REST-API unter /api/v1/... — ein eigener Reader-Thread sorgt dafür, dass REST-Verkehr WebSocket-Abonnenten nie blockiert.
  • Blossom-Dateiserver (Medien-Hosting) unter eigenem Hostnamen.
  • NIP-86-Verwaltungs-RPC, Health-Check und Prometheus-/metrics.

Ressourcenprofil

nostrfy läuft nachweislich auf einem 0,25 vCPU / 512 MB VPS. Die LMDB-Speicherzuordnung ist eine dünne virtuelle Reservierung von 1 TiB — die physische Festplatte wächst nur mit echten Daten — und der Prozessspeicher bleibt konstant: Ein Relay mit 252 MB Datenbank belegte 7,9 MB privates RSS.

Ein schneller Eindruck

Drei Befehle für Installation, Initialisierung und Start:

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

Prüfen Sie dann, ob das Relay läuft:

sh
curl http://127.0.0.1:8080/health

Und rufen Sie das NIP-11-Dokument ab:

sh
curl -H "Accept: application/nostr+json" http://127.0.0.1:8080/
Wie es weitergeht
Folgen Sie der Schnellstartanleitung für den ersten Lauf oder wechseln Sie direkt zur Konfigurationsreferenz, um das Relay abzustimmen.