External Publication
Visit Post

セルフホスト Bluesky PDS でドメイン名ハンドルにしてみた

watura March 11, 2024
Source

時代は招待制をやめて部分的にではありますが、セルフホストできるようになったBlueskyですかね。

というわけで、表題の通りPDSをつかってドメイン名ハンドルを設定してみました。

Bskyアカウントです。フォローしてね。

watura (@wtr.app) お一人さまPDSで運用中 bsky.app

PDSとは

GitHub - bluesky-social/pds: Bluesky PDS (Personal Data Server) container image, compose file, and documentation Bluesky PDS (Personal Data Server) container image, compose f github.com

Early Access Federation for Self-Hosters | Bluesky For a high-level introduction to data federation, as well as www.docs.bsky.app

Bluesky本体に接続(クローリングとかされる)サーバーで、ユーザーの諸々のデータが保存されます。なので、MastodonのようにオレオレBlueskyが建てられるよ!というよりは、Blueskyのストレージの一つになれるよ。という感じかなと思います。まあ、わかりにくいですね。

graph TD;
    Bluesky-->PDS_A;
    Bluesky-->PDS_B;
    Bluesky-->PDS_C;
    Bluesky-->PDS_D;

将来的にはBluesky自体も建てられるようになるとは思いますが、あんまりそこには興味はないかなぁという感じです。

なんで立てるの?

なんで、わざわざPDSたてたの?

技術的な興味

といってもほぼコマンド1つでたつので。。・

データの所有

技術的な興味

まあ、そこにセルフホストでできるんだからやってみないとね!というところですね。

DNSの設定

設定ファイルの作成

Let's Encryptの設定

DNSはCloudFlareを使って設定しています。CloudFlareでは、1段階 *.wtr.app のSSL証明書は無料で発行してくれます。しかし、*.bsky.wtr.app みたいな2段階以上なサブドメインには発行してくれません。そのため、それらのためにLet's Encryptを使って生成するようにTraefikを設定しました。Traefikを使った理由は既存の自宅サーバー環境がTraefikだからです。こんな感じ

certificatesResolvers:  letsEncrypt:    acme:      email: le@wtr.app      storage: /etc/traefik/acme.json      dnsChallenge:        provider: cloudflare        resolvers:          - 1.1.1.1:53          - 1.0.0.1:53

docker-compose.yml にはこんな感じのラベルを追加しています。  bsky.wtr.appもCloudFlareをやめてLets Encryptにしようかなぁと思った名残が残っちゃっていますが、*.bsky.wtr.appだけ取得するようにしました。

  • "traefik.http.routers.bskyAccount.rule=HostRegexp({subdomain:.+}.bsky.wtr.app)"
  • "traefik.http.routers.bskyAccount.entrypoints=websecure"
  • "traefik.http.routers.bskyAccount.tls=true"
  • "traefik.http.routers.bskyAccount.tls.certresolver=letsEncrypt"
  • "traefik.http.routers.bskyAccount.tls.domains[0].main=*.bsky.wtr.app"

Let's Encryptの証明書を保存するのを忘れていて、やべえってなったりはしましたがとくに問題なく動いています。

データの所有

自己満足の世界を全く脱していないとは思うのですが、自分の作り出したものは自分で管理したいというところが、Self hostしている理由です。いや、だって、運営とか信用ならんやん?永続性、完全制を他人に握られるとかいややん?サービス終了するので、データバックアップとってね!とか。。。もちろん、この文章もセルフホストしているwtr.appの方にも公開し、この記事のurlをcanonical urlとして指定しておくつもりです。

というわけで、

Readmeに従ってアカウントをつくり

bsky.appからカスタムハンドラーを指定して

独自ドメインアカウントができました

残念ながら、PDSだけでは独自ドメインアカウントはまだ作れないので、bsky.appから変更する必要がありました。

途中、うまくうごかないエラーが発生した場合などは、デバッガーがあるのでこれをつかってちゃんと、証明書等がちゃんとできているのかを確認できます。

Bluesky Debug bsky-debug.app

Discussion in the ATmosphere

Loading comments...