nostrfy 簡介

nostrfy 是什麼、開箱即用的功能,以及這款以 Rust 撰寫的一體化 Nostr 中繼引擎背後的設計理念。

nostrfy 是 Nostr 協定的中繼伺服器。 它儲存用戶端傳送的事件(貼文、反應、個人檔案……),並依訂閱請求將它們投遞。

核心特色

  • 簡單穩定 — 以 Rust 撰寫;一個二進位檔完成一切。
  • 快速儲存與搜尋 — LMDB 資料庫,附全文搜尋索引(NIP-50)。
  • 廣泛的 NIP 支援 — 實作 36 個 NIP,外加 Blossom 檔案伺服器: 刪除、工作量證明、委派、群組、搜尋與管理 API。
  • 易於維運 — 常駐程式模式、日誌輪替、設定熱重載 (SIGHUP)、即時統計、REST API 與 Prometheus 指標。
  • 易於遷移 — 一行指令匯入現有的 strfry 資料庫,支援 dry-run、設定合併與安全重複執行 (遷移指南)。

開箱即用的功能

單一 nostrfy 二進位檔在一個連接埠上提供:

  • WebSocket 中繼與 NIP-11 資訊文件。
  • 唯讀 REST API,位於 /api/v1/... — 獨立的讀取執行緒意味著 REST 流量永遠不會阻塞 WebSocket 訂閱者。
  • Blossom 檔案伺服器(媒體託管),執行於獨立主機名稱。
  • NIP-86 管理 RPC、健康檢查與 Prometheus /metrics。

資源佔用

nostrfy 已驗證可在 0.25 vCPU / 512 MB VPS 上執行。LMDB 記憶體映射是 1 TiB 的稀疏虛擬保留 — 實體磁碟只隨真實資料成長 — 處理程序記憶體保持平穩: 資料庫 252 MB 的中繼僅佔用 7.9 MB 私有 RSS。

快速體驗

三行指令完成安裝、初始化與啟動:

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

然後驗證中繼已啟動:

sh
curl http://127.0.0.1:8080/health

並取得它的 NIP-11 文件:

sh
curl -H "Accept: application/nostr+json" http://127.0.0.1:8080/
下一步
依照快速開始完成首次執行,或直接跳到 設定參考來調整中繼。