デプロイ概要
nostrfy の配布形態とデプロイ方法 — Fly.io、AWS、Google Cloud、Azure、DigitalOcean、任意の VPS に対応し、TLS、systemd、コンテナの注記付き。
1つのバイナリ、複数のプラットフォーム
nostrfy は x86_64 と aarch64 向けのビルド済みバイナリ(GitHub
リリースアセット、install.sh によるチェックサム検証付き)、それらのバイナリを ダウンロードするコンテナイメージ(コンパイル不要)、および主要プラットフォーム向けのデプロイガイドを提供します。
プラットフォーム
| プラットフォーム | 種類 | ガイド |
|---|---|---|
| Fly.io | マネージドプラットフォーム(コンテナ、ボリューム、TLS) | fly.md |
| DigitalOcean | Droplet(VM)または App Platform | deploy/digitalocean.md |
| AWS | EC2(VM)、Lightsail または ECS | deploy/aws.md |
| Google Cloud | Compute Engine(VM)または Cloud Run | deploy/gcp.md |
| Azure | VM または Container Apps | deploy/azure.md |
| 汎用 VPS | 標準的な Ubuntu/Debian サーバー | deploy/vps.md |
VM 向けの共通パターン
すべての VM ガイド(DigitalOcean、AWS EC2、GCP、Azure、汎用 VPS)は同じパターンに従います:
sh
# 1. 最新のリリースバイナリをインストールします(インストール自体に sudo は不要です)
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh
# 2. 設定テンプレートを取得して編集します(リポジトリのクローンは不要です)
sudo mkdir -p /etc/nostrfy
sudo curl -fsSL -o /etc/nostrfy/nostrfy.toml \
https://raw.githubusercontent.com/iqbqioza/nostrfy/main/deploy/nostrfy.toml
sudo nano /etc/nostrfy/nostrfy.toml # name、public_url、private_key を設定します
# 3. systemd ユニットを取得してサービスを開始します
sudo curl -fsSL -o /etc/systemd/system/nostrfy.service \
https://raw.githubusercontent.com/iqbqioza/nostrfy/main/deploy/nostrfy.service
sudo systemctl daemon-reload
sudo systemctl enable --now nostrfy
# 4. プロバイダーのファイアウォールでポート(通常は 8080)を開いて検証します
curl http://localhost:8080/health本番公開の前に
すべてのデプロイで同じ nostrfy.toml オプションを使用します。本番公開の前に、少なくとも以下を設定してください:
toml
[relay]
name = "My Relay"
public_url = "wss://relay.example.com" # NIP-42 AUTH / NIP-62 / NIP-98 に必須です
private_key = "" # 'nostrfy genkey' を実行してキーを貼り付けますVM とコンテナのどちらか?
- VM(systemd):最もシンプルで安価、完全に制御できます。ほとんどのリレーデプロイにおすすめです。
- コンテナ:リポジトリの
Dockerfile(ビルド時にリリースバイナリをダウンロード)を使用して、Fly.io、Digital Ocean App Platform、AWS ECS、GCP Cloud Run、Azure Container Apps 上で実行します。LMDB データ用に永続ストレージ(/data)が必要です。
Blossom メディアホスト
blossom.host が設定されている場合、そのホスト名も TLS プロキシの同じポートに向けてください(nginx/Caddy
の設定例は VPS ガイド を参照)。