💭

Blueskyの開発用サーバーの起動方法

2024/04/22に公開

ここではBlueskyの開発サーバーの起動方法について紹介します。

とりあえず開発サーバーを起動する

開発サーバーはbluesky-social/atprotoにあって、現在の最新リリースバージョンで動かすには、次のようにすると起動できます。(Dockerを使っているようです)

$ git clone git@github.com:bluesky-social/atproto.git
$ cd atproto
$ git checkout -b 0.12.5 refs/tags/@atproto/api@0.12.5
$ make deps
$ make build
$ make run-dev-env
cd packages/dev-env; pnpm run start

> @atproto/dev-env@0.3.7 start /Users/nabeyang/src/github.com/bluesky-social/atproto/packages/dev-env
> ../dev-infra/with-test-redis-and-db.sh node dist/bin.js

[+] Running 18/18
 ✔ redis_test 8 layers [⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                   5.9s 
   ✔ bca4290a9639 Pull complete                                                                                            1.0s 
   ✔ b0dd12c8e070 Pull complete                                                                                            0.7s 
   ✔ 3a71491b5fd7 Pull complete                                                                                            0.8s 
   ✔ 12253d34a72a Pull complete                                                                                            1.4s 
   ✔ 91d7b386336f Pull complete                                                                                            2.3s 
   ✔ be6981722a96 Pull complete                                                                                            2.0s 
   ✔ 4f4fb700ef54 Pull complete                                                                                            2.1s 
   ✔ 45256f652364 Pull complete                                                                                            2.6s 
 ✔ db_test 8 layers [⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                     15.4s 
   ✔ 9b18e9b68314 Pull complete                                                                                            3.0s 
   ✔ 75aada9edfc5 Pull complete                                                                                            3.0s 
   ✔ 820773693750 Pull complete                                                                                            3.3s 
   ✔ 48f075972012 Pull complete                                                                                           10.7s 
   ✔ fdc29d7b1b8a Pull complete                                                                                            3.7s 
   ✔ 79ab9222a814 Pull complete                                                                                            4.0s 
   ✔ 85e8ef86e533 Pull complete                                                                                            4.7s 
   ✔ d20bbebbf37b Pull complete                                                                                            4.7s 
[+] Running 4/4
 ✔ Volume "dev-infra_atp_db"         Created                                                                               0.0s 
 ✔ Volume "dev-infra_atp_redis"      Created                                                                               0.0s 
 ✔ Container dev-infra-redis_test-1  Healthy                                                                               0.3s 
 ✔ Container dev-infra-db_test-1     Healthy                                                                               0.3s 

██████╗
██╔═══██╗
██║██╗██║
██║██║██║
╚█║████╔╝
 ╚╝╚═══╝  protocol

[ created by Bluesky ]
👤 DID Placeholder server started http://localhost:2582
🌞 Personal Data server started http://localhost:2583
🗼 Ozone server started http://localhost:49903
🌅 Bsky Appview started http://localhost:2584
🤖 Feed Generator started http://localhost:49982
🤖 Feed Generator started http://localhost:49985

iOSアプリから利用するときはhttp://localhost:2583にxrpc APIを呼ぶと良いようです。

リリースバージョンの見つけ方について

atprotoリポジトリを見ると分かるのですが、Releasesが空になっています。Version packagesというタイトルのPRからリリースバージョンのコミットを見つけることができます。tagsから探すこともできるのですが、1つのコミットに対して複数のタグが付けられていて見つけ難いかもしれません。

$ git log --oneline
d0625be26 (HEAD -> 0.12.5, tag: @atproto/pds@0.4.16, tag: @atproto/ozone@0.1.9, tag: @atproto/dev-env@0.3.7, tag: @atproto/bsky@0.0.47, tag: @atproto/api@0.12.5) Version packages (#2422)
3424a1770 Add email auth factor tools to API (#2419)
32c97d4c8 (tag: @atproto/pds@0.4.15, tag: @atproto/ozone@0.1.8, tag: @atproto/dev-env@0.3.6, tag: @atproto/bsky@0.0.46, tag: @atproto/api@0.12.4) Version packages (#2417)
93a4a4df9 Lexicons: email auth factor (#2416)
cc090d2e5 Suggestions skeleton impl (#2403)
45981de5c getSuggestionsSkeleton lexicon (#2399)
1074f43b4 (tag: @atproto/pds@0.4.14, tag: @atproto/ozone@0.1.7, tag: @atproto/dev-env@0.3.5, tag: @atproto/bsky@0.0.45, tag: @atproto/api@0.12.3) Version packages (#2401)
...

データベースへの接続

PostgreSQLが使われていて、以下に接続情報が書いてあります。
https://github.com/bluesky-social/atproto/blob/b07950682c51b1aa2216958178aa4eae437846e6/packages/dev-infra/_common.sh#L24-L32

テストユーザー

上記方法で起動した場合、すでに以下に書かれているユーザーが、テスト用に登録されています。
https://github.com/bluesky-social/atproto/blob/b07950682c51b1aa2216958178aa4eae437846e6/packages/dev-env/src/mock/index.ts#L46-L68

handleはalice.test、パスワードhunter2Aliceとしてログインすることができます。

Discussion