セルフホスティング

Bluesky PDS をセルフホスティングするということは、より広範な ATProto ネットワークと連携できる独自のパーソナル データ サーバーを実行することを意味します。

目次

セルフホスティング PDS の準備

任意のクラウド プロバイダーでサーバーを起動します。Digital OceanVultr は 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.comA12.34.56.78600
*.example.comA12.34.56.78600

注:

  • 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 に接続できます。

  1. Bluesky アプリを入手します
  1. PDS の URL を入力します (例: https://example.com/)

注: サブドメイン TLS 証明書はオンデマンドで作成されるため、ハンドルにアクセスできるようになるまでに 10 ~ 30 秒かかる場合があります。最初の投稿/プロフィールが表示されない場合は、30 秒待ってから別の投稿を行ってください。

PDS の更新

PDS を新しいバージョンに更新しておくことをお勧めします。そうしないと、問題が発生する可能性があります。pdsadmin ツールを使用して PDS を更新できます。

sudo pdsadmin update

ヘルプの取得

  • GitHub にアクセスして、問題やディスカッションを確認してください。
  • AT Protocol PDS Admins Discord に参加して、インスタンスをホストしている他のユーザーとチャットし、PDS ディストリビューションに関する重要な更新情報を入手してください。