永不下線的 Nostr 中繼。
nostrfy 是一體化 Nostr 中繼伺服器引擎。為極致速度而設計,天生輕量,預設強大。 一行指令安裝,使用單一 TOML 檔案設定,幾乎可在任何 VPS 上執行。
一行指令安裝
安裝腳本會偵測你的作業系統與架構,下載相符的預編譯二進位檔,驗證 sha256 校驗和並將其放入你的 PATH。
無需複製原始碼、無需編譯、無需 sudo。
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。
校驗和驗證
在二進位檔寫入磁碟之前,取得並驗證發行校驗和。
VERSION=v0.1.16 curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | shINSTALL_DIR=/usr/local/bin sudo curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | shcurl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh -s -- --forcegit clone https://github.com/iqbqioza/nostrfy.git && cd nostrfy && cargo build --release從 strfry 遷移?
用一行指令匯入你現有的事件 — 離線、經過驗證、可安全重複執行。
一分鐘內跑起來
nostrfy 內建常駐程式、設定驗證器、即時統計、日誌輪替與熱重載 — 中繼營運所需的一切,都在一個二進位檔裡。
- nostrfy init 寫入一份帶完整註解的預設 nostrfy.toml
- nostrfy check 在啟動前驗證設定
- SIGHUP 無需重新啟動即可重載大部分設定
- nostrfy upgrade 將二進位檔更新到最新版本
nostrfy init
# 寫入預設 nostrfy.toml 並結束nostrfy start
# 以常駐程式方式執行中繼nostrfy stats
# 即時連線數、事件數、資料庫大小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 提交的限制;讀取執行緒永遠不會阻塞它。
使用隨附的基準測試重現 — 參閱 效能說明。
完整實作 NIP 支援
所有中繼端 NIP 均已實作並驗證。NIP-11 中公佈的列表是動態的 — 當某個 NIP 的類型被封鎖時會自動移除。
優秀用戶端生態系
nostrfy 使用用戶端所依賴的開放 NIP 標準 — 最好的 Nostr 應用可以隨插即用,獲得完整體驗。任何符合 NIP 的用戶端都能與你的中繼搭配。
Ditto 真正使用了這些 NIP — NIP-50 搜尋、NIP-22 討論串留言、NIP-57 Zap、NIP-94 媒體與 NIP-85 統計都是它的日常體驗 — 每一個都對應 nostrfy 的中繼功能。
功能完整的用戶端,真正使用了這些 NIP — NIP-50 搜尋、NIP-17/59 私訊、NIP-57 Zap、NIP-88 投票與 Blossom 媒體都能在你的中繼上運作。
在 Nostr 上開發?將任意用戶端指向你的中繼 — 參閱 完整 NIP 參考。