プログラミングなんてわからないんですけど〜

元プログラマによるプライベートでのプログラミング日記。1/3のつもりだけどソフト関連はここがメイン

Dolphinサーバを建ててみました(docker編)

ActivityPub?に対応したサーバソフトウェアは、mastodonやpleromaの他にも色々あります。国産だとmisskeyというのがありますが、そこの作者がおひとりさま用の軽量サーバを開発しています。

github.com

misskey含めdolphinにもsimple html clientを対応させたいと考えているので、テスト用のサーバとして自宅の環境に一つ建ててみました。
githubには非dockerの方法しか書いてありませんが、実はdocker(docker-compose)で建てることができるようです。試しにこちらの方法でやってみました。

まず、git cloneでソース一式をダウンロードしてきます。つぎに、.configディレクトリ内のファイルをいじるのですが、ここでちょっと問題が。必要なサンプルファイルが1つ登録されていません。そこで、misskeyのリポジトリから取ってきました。

misskey/docker_example.env at develop · syuilo/misskey · GitHub

example.ymlをdefault.ymlにコピーして、中身を適宜書き換えます。dockerに対応させるためには、以下の変更が必要です。

default.ymlの編集
非Docker環境と同じ様に編集してください。
ただし、Postgresql、RedisとElasticsearchのホストはlocalhostではなく、docker-compose.ymlで設定されたサービス名になっています。
標準設定では次の通りです。

サービス ホスト名
Postgresql db
Redis redis

ESはありませんので書かないです。
つぎに、docker_example.envをdocker.envにコピーして、中身を適宜書き換えます。コピー元のファイルはmisskeyのものなので、default.ymlのなかの記述に合わせるように書き換えてください。

このファイルはPostgresqlの設定を記述します。
最低限記述する必要がある設定は次の通りです。

設定 内容
POSTGRES_PASSWORD パスワード(デフォルト:example-dolphin-pass)
POSTGRES_USER ユーザー名(デフォルト:example-dolphin-user)
POSTGRES_DB データベース名(デフォルト:dolphin)

サーバのポートなどがどう空いているかによって、ここらへんは変えておいたほうが良い場合もあります。

ここまでそろったら、docker-compose.ymlがあるディレクトリでビルドします。あ、他のソフトとポート番号3000番が重なる場合は、docker-compose.ymlを書き換えてください。

sudo docker-compose build

ビルドが無事終了したら次はDBの初期化を行います。

sudo docker-compose run --rm web npm run init

なんかたらたらどばーと流れたらうまく行っているはずです。で、dolphinを立ち上げる前にnginxの設定なんかをやります。こちらもmisskeyでの例が書いてあるサイトを参考にしてください。

qiita.com

nginxの設定がうまく行ったら、dolphinを立ち上げます。

sudo docker-compose run --rm web npm start

設定周りが問題なければ、ターミナルの画面にdolphinが立ち上がったというメッセージが表示されますので、設定したURLにアクセスするとアカウントを登録する画面が出てくるはずです。画面が出てこない場合は、自宅回線でうまく名前解決できていない場合がありますので、モバイル回線など別の回線からアクセスしてみてください。

アカウントとパスワードの登録が終わればひとまず終了です。ちなみに、さっきのdolphin立ち上げでターミナルが終了しない状態になっているので、ctrl+Cで一度終了させてから、up -dしてください。

sudo docker-compose up -d

これで動いているはずです。あとは色々設定周りや別のサーバのアカウントのフォローの仕方を調べてください(正常に動いているなら別のサーバのアカウントのリモートフォローができるはず)。

ざっくりとではありますが、サーバ立ち上げの話でした。