[obsidian] vault backup: 2024-03-05 23:57:42
All checks were successful
Build / build (push) Successful in 2m27s
All checks were successful
Build / build (push) Successful in 2m27s
This commit is contained in:
@ -3,6 +3,10 @@ date: "2024-02-08T15:53:17+0900"
|
||||
---
|
||||
#self-hosted #bsky
|
||||
|
||||
立ちました。
|
||||
[[Bluesky]]
|
||||
[@tomoya.matsuuratomoya.com on Bluesky](https://bsky.app/profile/tomoya.matsuuratomoya.com)
|
||||
|
||||
公式リポジトリ
|
||||
|
||||
- [GitHub - bluesky-social/pds: Bluesky PDS (Personal Data Server) container image, compose file, and documentation](https://github.com/bluesky-social/pds)
|
||||
@ -41,14 +45,14 @@ BlueskyのATプロトコルはDNSレベルでのハンドル解決を行う。
|
||||
|
||||
## シングルユーザーインスタンス限定の解法
|
||||
|
||||
`/pds/pds.env`で`PDS_SERVICE_HANDLE_DOMAINS=.matsuuratomoya.com`のように指定すると、PDSサーバー自体のアドレスを`https://pds.matsuuratomoya.com`にしたまま、ハンドルのIDは`${handle}.matsuuratomoya.com`で設定できます。
|
||||
`/pds/pds.env`で`PDS_SERVICE_HANDLE_DOMAINS=.matsuuratomoya.com`のように指定すると、PDSサーバー自体のアドレスを`https://pds.matsuuratomoya.com`にしたまま、ハンドルのIDは`${handle}.matsuuratomoya.com`で設定できる。
|
||||
|
||||
もちろん、実際にはこの状態でアカウントをいくつも作っていっても、ハンドルIDが自分の立ち上げてる他のサーバーのアドレスとかち合ったりするので普通は運用できません。
|
||||
もちろん、実際にはこの状態でアカウントをいくつも作っていっても、ハンドルIDが自分の立ち上げてる他のサーバーのアドレスとかち合ったりするので普通は運用できない。
|
||||
|
||||
しかし、使うユーザーが一人だけの場合は、`_atproto.${handle}.matsuuratomoya.com`にTXTレコードでアカウントのDID(永続性のあるアカウントID)を指定することでハンドルを解決すれば問題なく動かすことができます。
|
||||
しかし、使うユーザーが一人だけの場合は、`_atproto.${handle}.matsuuratomoya.com`にTXTレコードでアカウントのDID(永続性のあるアカウントID)を指定することでハンドルを解決すれば問題なく動かすことができる。
|
||||
|
||||
というわけで、まずは公式の`install.sh`で`pds.matsuuratomoya.com`上に一通りサーバーを立ち上げて、`/pds/pds.env`に`PDS_SERVICE_HANDLE_DOMAINS=.matsuuratomoya.com`を追記します。
|
||||
ついでに、管理メールの送信用のSMTPの設定も済ましておきましょう。
|
||||
というわけで、まずは公式の`install.sh`で`pds.matsuuratomoya.com`上に一通りサーバーを立ち上げて、`/pds/pds.env`に`PDS_SERVICE_HANDLE_DOMAINS=.matsuuratomoya.com`を追記する。
|
||||
ついでに、管理メールの送信用のSMTPの設定も済ましておく。
|
||||
|
||||
```
|
||||
PDS_EMAIL_SMTP_URL=smtps://${_SMTP_USERNAME}:${_SMTP_PASSWORD}@${_SMTP_HOST}
|
||||
@ -56,12 +60,12 @@ PDS_EMAIL_FROM_ADDRESS=hogehoge@matsuuratomoya.com
|
||||
```
|
||||
(`PDS_EMAIL_FROM_ADDRESS`に関してはなぜかドキュメントに載っていなかった気がする)
|
||||
|
||||
その後`pdsadmin create-invite-code`でアカウント招待コードを作っておきます。(`pdsadmin account create`だと先にハンドル解決ができないため招待コードを経由する)
|
||||
その後`pdsadmin create-invite-code`でアカウント招待コードを作っておく。(`pdsadmin account create`だと先にハンドル解決ができないため招待コードを経由する)
|
||||
|
||||
### Cloudflare Tunnelを立ち上げる
|
||||
|
||||
Cloudflare Tunnelを立ち上げます。私は別の用途で色々使っているトンネルがあるのでここでは省略。
|
||||
一度も使ったことがないなら、おすすめは`/pds`以下に`compose.override.yml`というファイルを作ってコンテナを追加すること。
|
||||
Cloudflare Tunnelを立ち上げる。私は別の用途で色々使っているトンネルがあるのでここでは省略。
|
||||
一度も使ったことがないなら、おすすめは`/pds`以下に`compose.override.yml`というファイルを作ってコンテナを追加するのが多分楽。
|
||||
|
||||
```
|
||||
services:
|
||||
@ -77,10 +81,34 @@ services:
|
||||
- TUNNEL_TOKEN=<設定画面で出てきたトークン>
|
||||
```
|
||||
|
||||
トンネルが開通したら、サーバーのローカルIP(同じdocker composeで立ち上げてるなら`localhost`で)に転送する。特にドキュメントに書かれてないが内部的には3000番でサーバーが立ち上がっているところに、[[Caddy]]でリバースプロキシをかけているので、トンネルからHTTPをそのまま3000番に転送してあげる。
|
||||
トンネルが開通したら、サーバーのローカルIP(同じdocker composeで立ち上げてるなら`localhost`でいい)に転送する。特にドキュメントに書かれてないが内部的には3000番でサーバーが立ち上がっているところに、[[Caddy]]でリバースプロキシをかけている。なので、トンネルではpds.matsuuratomoa.comに来るHTTPをそのまま3000番に転送してあげれば良い。
|
||||
|
||||
(なので、docker composeで立ち上がっているcaddyのサーバーは無用の長物になっているため、気になる人はオリジナルの`compose.yml`でコメントアウトしてもいいと思う。私はどうせアップデートかけた時にcompose.ymlが巻き戻る気がしててめんどくさいのでやってない)
|
||||
(つまりdocker composeで立ち上がっているcaddyのサーバーは無用の長物になっているため、気になる人はオリジナルの`compose.yml`でコメントアウトしてもいいと思う。私はどうせアップデートかけた時にcompose.ymlが巻き戻る気がしててめんどくさいのでやってない)
|
||||
|
||||
### PDSにログインする
|
||||
|
||||
https://bsky.app にアクセスして、
|
||||
https://bsky.app にアクセスして、アカウントを作成する。この時pdsがきちんと立ち上がっていれば、サーバーのアドレスにpds.matsuuratomoya.comを指定して次に進めるはず。
|
||||
|
||||
ここで先ほど作成した招待コードでアカウント作成を進める。アカウント名はなんでもいいが、`me`や`at`、`bsky`などシングルユーザーインスタンスなら使っても良さそうな短いハンドル名はコード上で予約IDとして(多分スパム防止)弾かれてしまう。(これは後々設定ファイルで弄れるようにしてほしい…。)
|
||||
|
||||
しょうがないので私は冗長だが`tomoya.matsuuratomoya.com`というハンドルを設定した。
|
||||
|
||||
ここで重要なのは、**このインスタンスでログインしている間、インスタンス上のアカウントのハンドル解決はあくまで内部的に**行われるということだ。
|
||||
|
||||
どういうことかというと、アカウント作成後、設定画面からハンドル変更で独自ドメインを指定することができる。
|
||||
ここで例えばDNSを使用して`matsuuratomoya.com`というルートドメインをアカウントに設定することも、`_atproto`にTXTレコードをきちんと設定すれば、できる。ログアウトした状態なら正常にこのアカウントのプロフィールも表示できる。
|
||||
|
||||
ただし、`matsuuratomoya.com`を含むハンドルは`pds.matsuuratomoya.com`でログインしてる限り、あくまで内部でのハンドル解決が優先されDNSへの問い合わせはされない、ということらしい。ここがドキュメントでは明言されておらず自分のプロフィールが表示されないのに丸一日悩まされた。
|
||||
|
||||
### 他サーバーとの連携
|
||||
|
||||
肝心のFederationだが、残念ながら現在は一通り設定を済ませた後公式のDiscord([AT Protocol PDS Admins Discord](https://discord.gg/UWS6FFdhMe))でPDSサーバーのアドレスを添えて連携リクエストをbsky公式に出す必要がある(そうしないとbluesky.socialのアカウントからは見えないようになっている)
|
||||
|
||||
作れるアカウントも現在は10アカウントまで、投稿数にも(一人で使う分には問題ない程度の)制限がある。今後どのくらい盛り上がるんでしょうね。
|
||||
|
||||
## 要点まとめ
|
||||
|
||||
- 自分のpdsはcloudflare tunnelでpds.matsuuratomoya.comをポート3000に転送
|
||||
- `/pds/pds.env`で`PDS_SERVICE_HANDLE_DOMAINS=.matsuuratomoya.com`のようにルートドメインにする必要あり(Cloudflareではサブサブドメインに証明書が出ないので)
|
||||
- その上で、自分のpdsでログインしてる時の、自分のドメインに属するアカウントのハンドル解決は`_atproto`レコードや`.well-known/atproto-did`を介さず行われるので何がしかのハンドルを設定する必要がある(私の場合は`@tomoya.matsuuratomoya.com`に設定でき、`@matsuuratomoya.com`にはできない)
|
||||
- しかし以前としてログアウト状態や他のインスタンスからはDNS解決できる必要があるので、`_atproto.tomoya.matsuuratomoya.com`にTXTレコードでdidを指定する必要がある
|
||||
|
Reference in New Issue
Block a user