Concrntのドメインを建てた
Nostrに続いて今度はConcrnt。最初にアカウントを作ってから2週間で「あ、建てられそう。やるか」と。勢いは大事だと思う。
当初はそう苦戦しないかと思ったんだけど、悩みに悩んで結局手助けをいただくことになった。(少なくとも表面上は) 快く相談に乗っていただけたことには大変感謝している。
※Concrntはtotegamma (ととがんま) 氏が中心となって作られているSNS。詳しくはこちらを。
・Concrnt Square
Nostrのリレーと比べるとちょっと手こずったところがあるので、'24.06.16現在の状況を元に覚え書き的に書き残しておく。
言っておきますが自分がこうしたら動いたというだけの記録なので、間違ってたり不要な手順があるかもしれません。同じようにやってうまくいかなかったり問題が起きたりしても責任は取れませんので念のため。
ただ、自分でよければ声をかけてもらえれば分かる範囲でフォローはします。こちらも素人ですが。
また、本記事では自分がある程度要領を分かっていたDocker Composeを使用した方法で書いていますが、本来公式ではHelm Chartでの立ち上げを推奨しておりそちらの方がやりやすいようです。
そちらでの詳しい手順については上記リンク先、Concrnt Squareで解説されているのでご一読の程。
環境はNostrのリレーを動かしているRaspberry Pi 4 / 4GB。Raspberry Pi OS上でDockerを使用。
mediaserverはCloudflare R2を使うので無効化。
apbridgeは不要かと思ったんだけど、有効にしていないとActivityPubからのリルートが表示されないようなので有効化することにした。
下準備
とりあえずConcrntのアカウントを作っておき、設定 / 一般にある開発者モードを有効化するとメニューに開発者ツールが出てくるので、その中にあるIDENTITYGENERATORのタブでGENERATEを押して表示されるmnemonic・CCID・publickey・privatekeyをどこかに保存しておく。
設定ファイル等の準備
ディレクトリ構成は以下。
Concrnt
┠_composeData
┃ ┠db
┃ ┗redis
┠etc
┃ ┠config
┃ ┃ ┠apconfig.yaml
┃ ┃ ┠config.yaml
┃ ┃ ┗gateway.yaml
┃ ┗static
┃ ┠code-of-conduct.txt
┃ ┠register-template.json
┃ ┗tos.txt
┗compose.yml
apconfig.yaml以外の各ファイルはGitHubにあるものをベースに必要な箇所を書き換える。
compose.yml
summary (url-summary)
は現状ARM向けのビルドが無いようなのでコメントアウトして無効化。
逆にapbridgeはコメントアウトされているので元に戻した上で下記変更・追記。
image: ghcr.io/totegamma/ccworld-ap-bridge:latest
↓
image: ghcr.io/concrnt/ccworld-ap-bridge:latest
networks:
- internal
↓
networks:
- external
- internal
gateway.yaml
services:
- name: concurrent
↓
services:
- name: concrnt
config.yaml
concurrent:
↓
concrnt:
fqdn: example.tld
↓
fqdn: <自ドメインのアドレス (例) nak.haniwar.com>
privatekey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
↓
privatekey: <下準備で保存したprivatekey>
profileの各項目はドメインの名前や紹介等。ここの内容は任意で。
apconfig.yaml
これは元となるサンプルの類が無いので自分でなんとかするしかない。
筆者は内容を教えてもらったけど、公開していいのかわからないので割愛。
起動
これは普通にdocker compose up -dで起動してdocker compose logs -fでログを見て問題なければOK。
ActivityPub連携
連携用のアカウントを作成し、privatekeyを確認する。これがapconfig.yamlのapConfig: proxyPrivの値になる。
apconfig.yamlの書き換えが完了したらドメインを再起動 (確認していないけどおそらくコンテナのrestartでいいはず)。
設定 / ActivitypubでUserIDを設定する。
ここで設定するUserIDはActivityPubにある既存のものではなく、Concrntのドメイン上で新規に作成されるもの。例えば筆者のドメインでexampleというIDを作ると、 @example@nak.haniwar.com というActivityPubのアカウントが作成される。
ActivityPubのユーザとはこのアカウントを介してやり取りすることになる。
最後に
筆者のアカウントはこちらです。
ActivityPubからだと @haniwar@nak.haniwar.com。
どうぞお気軽に絡んでやってください。
C'mon! Concrnt!