安裝指南

環境需求、從原始碼建置、安裝預編譯二進位檔、校驗和驗證,以及在 FreeBSD 上執行 nostrfy 的注意事項。

環境需求

  • 較新的穩定版 Rust 工具鏈(僅在建置中繼時需要)。
  • Linux 機器。
  • 建議 2 GB 或更多記憶體 — 0.25 vCPU / 512 MB VPS 請參閱下方的低規格說明。

低規格 VPS(0.25 vCPU / 512 MB)

即使資料庫超過記憶體,nostrfy 也已驗證可穩定執行。LMDB 映射是 稀疏的 1 TiB 虛擬保留 — 實體磁碟只隨寫入的資料成長 — 處理程序記憶體保持平穩:資料庫 252 MB 的中繼僅佔用 7.9 MB 私有 RSS (其餘是可回收的檔案快取,核心會在壓力下逐出)。

對於微型 VPS,一項設定影響最大:

toml
[database]
search_index = false   # halves the database size and saves CPU/IO
設定效果實測
search_index = false停用 NIP-50 詞索引 — 搜尋仍可用(全詞比對)但較慢每 10,000 事件 41.8 MB → 20.5 MB
預設值已針對低記憶體調校512 MB 無需變更

從原始碼建置

sh
git clone https://github.com/iqbqioza/nostrfy.git
cd nostrfy
cargo build --release

建置完成後,二進位檔位於 target/release/nostrfy。

安裝預編譯二進位檔

發行工作流程附帶 Linux x86_64、Linux aarch64 與 FreeBSD x86_64 的預編譯二進位檔。同一個 install.sh 在兩個系統上都能使用 — 它會偵測平台、下載相符的二進位檔並驗證其校驗和:

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

FreeBSD

nostrfy 可在 FreeBSD 13.x 與 14.x(amd64)上建置與執行。安裝 Rust 並建置:

sh
pkg install -y rust
cargo build --release

平台說明:

  • start/stop/restart 使用的處理程序存活檢查在 FreeBSD 上透過 kern.proc.pid.<pid>.comm sysctl 讀取處理程序名稱(在 Linux 上使用 /proc/<pid>/comm),因此兩個平台都能偵測到 pid 被其他程式重複使用的過期 pid 檔案。
  • nostrfy start 像在 Linux 上一樣常駐化;標準的雙 fork 常駐程式可與預設的 rc 整合(service nostrfy start)搭配使用。
  • Blossom 的 min_free_bytes 檢查使用 statvfs,兩個系統都提供;沒有 使用其他平台特定程式碼(中繼本身只是基於 tokio 的純非同步 Rust)。

在 80 連接埠上執行

一般使用者無法綁定 80 連接埠。要嘛用 sudo 執行,要嘛使用 8080 等較高的連接埠。

sh
nostrfy --config nostrfy.toml start

範例:在 8080 連接埠執行(一般使用者即可;請先在設定中變更連接埠)。

下一步
nostrfy 已安裝完成,請依照快速開始指南操作。