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

続き。

mastodon server を建てる その2

mastodon server を建てる その2

2022.11.20

シェアする