Self-hosting PDSを建てる
注意事項
準備
サーバーを用意
table:サーバー要件
OS Ubuntu 22.04
CPU 2コア以上
メモリ 2GB以上
ストレージ 40GB以上のSSD
アーキテクチャ amd64, arm64
サーバーにはIPv4のアドレスが必要
80/tcpと443/tcpのポートを開けておく(80→443のリダイレクトはCaddyがやってくれる)
DNSを設定する
table:DNS設定(ドメインがexample.com、サーバーのIPアドレスが12.34.56.78のとき)
Name Type Value TTL
example.com A 12.34.56.78 600
*.example.com A 12.34.56.78 600 新規アカウント(aaa.example.com)のために必要
example.comやrandom.example.comやtest123.example.comでサーバーのIPアドレスが返って来ればOK
自動インストール (Ubuntu 20.04/22.04 or Debian 11/12)
$ sudo bash installer.sh
あとは画面の指示に従ってドメインやうとDockerの起動まで行われる
手動インストール (Ubuntu 22.04)
割愛
PDS設定
自動インストールすると/pds/以下に必要なファイルが作られる
PDS環境変数
code:pds.env
PDS_HOSTNAME=PDSサーバーのドメイン
PDS_JWT_SECRET=JWTの暗号鍵?
PDS_ADMIN_PASSWORD=Adminアカウントのパスワード
PDS_REPO_SIGNING_KEY_K256_PRIVATE_KEY_HEX=リポジトリの署名鍵?(初期設定から変更不可)
PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=PLCの鍵?(初期設定から変更不可)
PDS_DB_SQLITE_LOCATION=SQLiteのファイル
PDS_BLOBSTORE_DISK_LOCATION=添付ファイルの保存先
PDS_DID_PLC_URL=連合PLCのURL(sandbox環境から変更禁止)
PDS_BSKY_APP_VIEW_ENDPOINT=連合AppViewのURL(sandbox環境から変更禁止)
PDS_BSKY_APP_VIEW_DID=連合AppViewのDID(sandbox環境から変更禁止)
PDS_CRAWLERS=連合BGSのURL(sandbox環境から変更禁止)
以下、installer.shで設定されない変数
PDS_INVITE_REQUIRED:招待コードが有効か
初期値がfalseのため、trueにしないと招待コードなしでアカウントが作成できるので注意
現在はデフォルトでtrueとなるように修正されています
有効にした場合はcom.atproto.server.createInviteCodeへadminでアクセスして招待コードを発行する
PDS_EMAIL_FROM_ADDRESS:メール送信者のメールアドレス
PDS_EMAIL_SMTP_URL:SMTPサーバーをURL形式で設定 上記2つを設定しないとアカウント削除やパスワード再設定のメールが送信されない