セルフホスティング
Bluesky PDS をセルフホスティングするということは、より広範な ATProto ネットワークと連携できる独自のパーソナル データ サーバーを実行することを意味します。
目次
- セルフホスティング PDS の準備
- クラウド ファイアウォールを HTTP および HTTPS 用に開く
- ドメインの DNS を構成する
- DNS が期待どおりに動作していることを確認する
- Ubuntu 20.04/22.04 および Debian 11/12 のインストーラー
- PDS がオンラインでアクセス可能であることを確認する
- pdsadmin を使用してアカウントを作成する
- 招待コードを使用してアカウントを作成する
- PDS で Bluesky アプリを使用する
- PDS を更新する
- ヘルプを取得する
セルフホスティング PDS の準備
任意のクラウド プロバイダーでサーバーを起動します。Digital Ocean と Vultr は 2 つの一般的な選択肢です。
サーバーに SSH で接続でき、ルート アクセスがあることを確認します。
サーバー要件
- パブリック IPv4 アドレス
- パブリック DNS 名
- ポート 80/tcp および 443/tcp でパブリック インバウンド インターネット アクセスが許可されている
サーバーの推奨事項
オペレーティング システム | Ubuntu 22.04 |
メモリ (RAM) | 1 GB |
CPU コア | 1 |
ストレージ | 20 GB SSD |
アーキテクチャ | amd64、arm64 |
ユーザー数 | 1 ~ 20 |
注: セキュリティ対策として、インバウンド SSH アクセス (ポート 22/tcp) を自分のコンピューターのパブリック IP アドレスに制限することをお勧めします。現在のパブリック IP アドレスは、ifconfig.me を使用して確認できます。
クラウド ファイアウォールを HTTP および HTTPS 用に開く
最も一般的な構成ミスの原因の 1 つは、ファイアウォール ポートを正しく開いていないことです。この手順を必ず再確認してください。
クラウド プロバイダーのコンソールで、次のポートがパブリック インターネットからの受信アクセスに対して開かれている必要があります。
-
80/tcp (TLS 証明書の検証にのみ使用)
-
443/tcp (すべてのアプリケーション リクエストに使用)
注: TLS を設定したり、ポート 80 から 443 にリクエストをリダイレクトしたりする必要はありません。Docker 構成ファイルに含まれている Caddy Web サーバーがこれを処理するためです。
ドメインの DNS を構成する
DNS プロバイダーのコントロール パネルから、サーバーを指すレコードを含むドメインを設定します。
名前 | タイプ | 値 | TTL |
---|---|---|---|
example.com | A | 12.34.56.78 | 600 |
*.example.com | A | 12.34.56.78 | 600 |
注:
example.com
をドメイン名に置き換えます。12.34.56.78
をサーバーの IP アドレスに置き換えます。- 一部のプロバイダーでは、ドメインのルートを表すために
@
記号を使用する場合があります。 - ユーザーが PDS に新しいアカウントを作成できるようにする場合は、ワイルドカード レコードが必要です。
- TTL は任意の値にできますが、600 (10 分) が妥当です
DNS が期待どおりに動作していることを確認します
DNS Checker などのサービスを使用して、ドメイン名を解決できることを確認します。
確認する例 (レコード タイプ A
):
example.com
random.example.com
test123.example.com
これらはすべて、サーバーのパブリック IP を返します。
Ubuntu 20.04/22.04 および Debian 11/12 のインストーラー
SSH 経由でサーバー上で、wget を使用してインストーラー スクリプトをダウンロードします:
wget https://raw.githubusercontent.com/bluesky-social/pds/main/installer.sh
または curl を使用してダウンロードします:
curl https://raw.githubusercontent.com/bluesky-social/pds/main/installer.sh >installer.sh
次に、bash を使用してインストーラーを実行します:
sudo bash installer.sh
PDS がオンラインでアクセス可能であることを確認する
[!TIP] ライブ ネットワークで PDS コンテンツを使用する際に最もよく発生する問題は、提供された Caddy 構成を nginx、apache、または同様のリバース プロキシに置き換える場合です。 TLS 証明書、WebSocket、仮想サーバー名をすべて正しく取得するのは難しい場合があります。現在、その他の構成についてはテクニカル サポートを提供していません。
ヘルスチェック エンドポイントをリクエストすることで、サーバーがオンラインで正常かどうかを確認できます。
ブラウザで https://example.com/xrpc/_health
にアクセスできます。次のようなバージョンを含む JSON 応答が表示されます:
{"version":"0.2.2-beta.2"}
ネットワークの残りの部分が PDS からコンテンツを取得できるように、WebSocket が動作していることも確認する必要があります。wsdump
などのツールをインストールし、次のようなコマンドを実行してテストできます:
wsdump "wss://example.com/xrpc/com.atproto.sync.subscribeRepos?cursor=0"
イベントは PDS で作成されるまで WebSocket に出力されないことに注意してください。そのため、設定が正常であれば、上記のコマンドは出力なしで実行され続ける可能性があります。
pdsadmin を使用してアカウントを作成する
サーバーで ssh を使用して、pdsadmin
を使用してアカウントを作成します (まだアカウントを作成していない場合)。
sudo pdsadmin account create
招待コードを使用してアカウントを作成する
サーバーで ssh を使用して、pdsadmin
を使用して招待コードを作成します。
sudo pdsadmin create-invite-code
アプリを使用してアカウントを作成するときは、この招待コードを入力します。
PDS で Bluesky アプリを使用する
Bluesky アプリを使用して PDS に接続できます。
- Bluesky アプリを入手します
- PDS の URL を入力します (例:
https://example.com/
)
注: サブドメイン TLS 証明書はオンデマンドで作成されるため、ハンドルにアクセスできるようになるまでに 10 ~ 30 秒かかる場合があります。最初の投稿/プロフィールが表示されない場合は、30 秒待ってから別の投稿を行ってください。
PDS の更新
PDS を新しいバージョンに更新しておくことをお勧めします。そうしないと、問題が発生する可能性があります。pdsadmin
ツールを使用して PDS を更新できます。
sudo pdsadmin update
ヘルプの取得
- GitHub にアクセスして、問題やディスカッションを確認してください。
- AT Protocol PDS Admins Discord に参加して、インスタンスをホストしている他のユーザーとチャットし、PDS ディストリビューションに関する重要な更新情報を入手してください。