デプロイ概要

nostrfy の配布形態とデプロイ方法 — Fly.io、AWS、Google Cloud、Azure、DigitalOcean、任意の VPS に対応し、TLS、systemd、コンテナの注記付き。

1つのバイナリ、複数のプラットフォーム

nostrfy は x86_64 と aarch64 向けのビルド済みバイナリ(GitHub リリースアセット、install.sh によるチェックサム検証付き)、それらのバイナリを ダウンロードするコンテナイメージ(コンパイル不要)、および主要プラットフォーム向けのデプロイガイドを提供します。

プラットフォーム

プラットフォーム種類ガイド
Fly.ioマネージドプラットフォーム(コンテナ、ボリューム、TLS)fly.md
DigitalOceanDroplet(VM)または App Platformdeploy/digitalocean.md
AWSEC2(VM)、Lightsail または ECSdeploy/aws.md
Google CloudCompute Engine(VM)または Cloud Rundeploy/gcp.md
AzureVM または Container Appsdeploy/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 ガイド を参照)。

TLS はプロキシまたはプロバイダー側で終端します
リレー自体は 8080 でプレーンな WebSocket を提供し、X-Forwarded-Proto を尊重します。