安装指南

环境要求、从源码构建、安装预编译二进制、校验和验证,以及在 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 已安装完成,请按照快速开始指南操作。