インストールガイド
環境要件、ソースからのビルド、ビルド済みバイナリのインストール、チェックサムの検証、および 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 では、1 つの設定が最も効果的です:
toml
[database]
search_index = false # データベースサイズを半分にし、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 は両 OS で動作します — プラットフォームを検出し、一致するバイナリをダウンロードしてチェックサムを検証します:
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 で実行(一般ユーザーでも可。先に設定でポートを変更してください)。