安装指南
环境要求、从源码构建、安装预编译二进制、校验和验证,以及在 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 | shFreeBSD
nostrfy 可在 FreeBSD 13.x 和 14.x(amd64)上构建和运行。安装 Rust 并构建:
sh
pkg install -y rust
cargo build --release平台说明:
start/stop/restart使用的进程存活检查在 FreeBSD 上通过kern.proc.pid.<pid>.commsysctl 读取进程名(在 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 端口运行(普通用户即可;请先在配置中更改端口)。