落ちない Nostr リレー。
nostrfy はオールインワンの Nostr リレーサーバーエンジン。 設計から高速、本質的に軽量、標準で強力。1 行でインストールし、単一の TOML ファイルで設定して、 ほぼどんな VPS でも動かせます。
1 行でインストール
インストールスクリプトが OS とアーキテクチャを検出し、一致するビルド済みバイナリをダウンロードして
sha256 チェックサムを検証し、PATH に配置します。
クローンもビルドも sudo も不要です。
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | shsudo 不要
~/.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 --releasestrfry からの移行をお考えですか?
既存のイベントを 1 コマンドで取り込み — オフライン、検証済み、再実行しても安全です。
1 分以内に稼働
nostrfy にはデーモン、設定バリデータ、ライブ統計、ログローテーション、ホットリロード — リレー運用に必要なすべてが 1 つのバイナリに含まれています。
- 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 に向けるだけ — 完了です。
実運用のリレーのために
すべての機能は 2 つの目標に沿って設計されています。落ちないこと、そして仕様を完全に実装すること。 その結果、攻撃、ディスクの停滞、メモリの少ないホストに耐えるリレーになりました。
仕様を完全実装
リレー側の NIP をすべて実装し、公式仕様に照らして検証済み — 36 以上の NIP と Blossom ファイルサーバー。
落ちない
過負荷保護、専用リーダースレッド、パニック隔離、厳格なリソース上限により、継続的な攻撃下でもサービスを提供し続けます。
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 スレッドのノート PC。書き込み速度は単一の LMDB ライタースレッドと バッチ化された fsync なしコミットに制約され、リーダーがそれを妨げることはありません。
同梱のベンチマークで再現できます — 詳しくは パフォーマンスノート。
NIP を仕様どおり完全サポート
リレー側の NIP はすべて実装・検証済み。NIP-11 で公開されるリストは動的で、 NIP の kind がブロックされると自動的に外れます。
優れたクライアントのエコシステム
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 リファレンス。