mastodon server を建てる その1
twitter 界隈が騒がしいので、open source の mastodon server を自前で建ててみる。
ここで課題となるのが、make cost。
非力(1M memory)のサーバ上で、環境構築は無理。
ということで、以下の作業はmac上で行った。
最新版のmastodonのget
git clone https://github.com/tootsuite/mastodon.git
ありがたいことに、docker-compose.yml まである。
が、 Dockerfile を見ると、 docker-compose v2 対応の記述がある。COPY --link
ということで、 docker-compose v2をinstall。
linux の場合
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -SL https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod a+x /usr/local/lib/docker/cli-plugins/docker-compose
mac の場合
mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-darwin-x86_64 -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
なるほど、 docker command の pluginになったのか。
docker compose version
---
Docker Compose version v2.12.2
.env の設定とsecret 生成
cp .env.production.sample .env.production
ここでいくつか設定をする
DOMAIN
mastodon server のdomainを決める。
ex mastodom.poppo-ya.com
LOCAL_DOMAIN=mastodon.poppo-ya.com
PostgreSQL
DB_HOST は、docker-compose.yml の link 名。
DB_HOST=db
DB_USER=mastodon_user
DB_NAME=mastodon_db
DB_PASS={パスワード}
DB_PORT=5432
自前のsecrets を生成
docker compose run --rm web bundle exec rake secret
---
f879da793...94c
長ーい文字列が出力される。上記のコマンドを2回繰り返して、以下の設定を埋める。
SECRET_KEY_BASE=21fb2b...37
OTP_SECRET=de641f...ac
Web Push用の鍵を生成
docker compose run --rm web bundle exec rake mastodon:webpush:generate_vapid_key
---
VAPID_PRIVATE_KEY=UCWQ...
VAPID_PUBLIC_KEY=BJr...
DB の準備
PostgreSQLのdatabseとuser作成
既にcontainerが起動されている、PostgreSQL server にmastodon用のdatabseを作成する
docker compose exec db bash
bash-5.1# psql -U postgres
postgres=# CREATE USER mastodon_user;
CREATE ROLE
postgres=# alter role mastodon_user with password '{パスワード}';
ALTER ROLE
postgres=# create database mastodon_db with owner=mastodon_user;
CREATE DATABASE
mastodon 用DB 準備
docker compose run --rm web bundle exec rake db:migrate
mastodon web用css生成
docker compose run --rm web bundle exec rake assets:precompile
mastodon 起動
docker compose up -d
続き。