Rust · MIT 或 Apache-2.0 · 最新版本 v0.1.16

永不下線的 Nostr 中繼。

nostrfy 是一體化 Nostr 中繼伺服器引擎。為極致速度而設計,天生輕量,預設強大。 一行指令安裝,使用單一 TOML 檔案設定,幾乎可在任何 VPS 上執行。

36+ 個中繼端 NIP Linux · FreeBSD · 容器 單一二進位檔,無依賴

一行指令安裝

安裝腳本會偵測你的作業系統與架構,下載相符的預編譯二進位檔,驗證 sha256 校驗和並將其放入你的 PATH。 無需複製原始碼、無需編譯、無需 sudo。

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

無需 sudo

安裝到 ~/.local/bin、~/bin 或 ~/.cargo/bin — PATH 中第一個已存在的目錄。

Linux + FreeBSD

提供 x86_64 與 aarch64 Linux 預編譯二進位檔,以及 FreeBSD x86_64。

校驗和驗證

在二進位檔寫入磁碟之前,取得並驗證發行校驗和。

指定版本
sh
VERSION=v0.1.16 curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh
系統全域安裝
sh
INSTALL_DIR=/usr/local/bin sudo curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh
覆寫現有安裝
sh
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh -s -- --force
從原始碼建置
sh
git clone https://github.com/iqbqioza/nostrfy.git && cd nostrfy && cargo build --release

從 strfry 遷移?

用一行指令匯入你現有的事件 — 離線、經過驗證、可安全重複執行。

遷移指南

一分鐘內跑起來

nostrfy 內建常駐程式、設定驗證器、即時統計、日誌輪替與熱重載 — 中繼營運所需的一切,都在一個二進位檔裡。

  • nostrfy init 寫入一份帶完整註解的預設 nostrfy.toml
  • nostrfy check 在啟動前驗證設定
  • SIGHUP 無需重新啟動即可重載大部分設定
  • nostrfy upgrade 將二進位檔更新到最新版本
開啟快速入門指南
sh
nostrfy init
# 寫入預設 nostrfy.toml 並結束
sh
nostrfy start
# 以常駐程式方式執行中繼
sh
nostrfy stats
# 即時連線數、事件數、資料庫大小
sh
curl http://localhost:8080/health
# {"status":"ok"}

將任意 Nostr 用戶端指向 ws://<host>:8080 — 完成。

為真實環境的中繼而打造

每個功能都圍繞兩個目標設計:永不下線,完整實作規範。結果就是一個能抵禦濫用、磁碟停滯與記憶體受限主機的中繼。

完整實作規範

所有中繼端 NIP 均已實作並對照官方規範驗證 — 36+ 個 NIP 以及 Blossom 檔案伺服器。

永不下線

過載保護、專用讀取執行緒、panic 隔離與嚴格的資源上限,讓中繼在持續濫用下仍能穩定服務。

Blossom 媒體伺服器

以 SHA-256 定址的上傳執行於獨立主機名稱 — 本機磁碟或 S3 相容儲存桶(AWS S3、Cloudflare R2),支援上傳者簽章刪除。

REST API

唯讀 /api/v1,可依 npub1、nevent1 或 naddr1 查詢事件 — 獨立的讀取執行緒意味著 REST 流量永遠不會阻塞 WebSocket 訂閱者。

LMDB 持久化

透過 heed 提供耐用且耐崩潰的儲存。記憶體映射以稀疏方式保留至上限 — 執行階段無需擴充,實體佔用極小。

一切皆可設定

所有設定都在 nostrfy.toml — 沒有編譯期選項。編輯、SIGHUP、完成。限制、NIP 切換、儲存等等。

適用於 TLS 反向代理

nginx、Caddy、Cloudflare Tunnel — 支援 WebSocket 升級與 X-Forwarded-Proto,wss:// 在任何代理前都能正常運作。

Rust + FreeBSD

單一靜態 Rust 二進位檔,支援 Linux x86_64、Linux aarch64 與 FreeBSD x86_64 — 已驗證可在 0.25 vCPU / 512 MB 的 VPS 上執行。

實測效能

Release 建置、全新資料庫、8 執行緒筆電。寫入速度受單一 LMDB 寫入執行緒與批次、無 fsync 提交的限制;讀取執行緒永遠不會阻塞它。

~21k
事件/秒 寫入
單一連線
100%
即時扇出
10,000 / 10,000 次投遞
0.32s
儲存查詢
20,000 事件
0.26s
NIP-50 搜尋
10,000 結果
7.9 MB
私有 RSS
資料庫 252 MB

使用隨附的基準測試重現 — 參閱 效能說明。

完整實作 NIP 支援

所有中繼端 NIP 均已實作並驗證。NIP-11 中公佈的列表是動態的 — 當某個 NIP 的類型被封鎖時會自動移除。

完整 NIP 參考
19111317222628293233344042434546475057596265666770777884858687889498A3Blossom

幾分鐘內執行你自己的中繼

從最小的 VPS 到全球叢集 — 預編譯二進位檔、設定驗證器與部署指南讓這一切輕鬆無痛。

有疑問?閱讀 常見問題,或了解 nostrfy 與 strfry 的比較 — 並用一行指令遷移。