[v2.5.2対応] Macでマストドンの開発環境構築

参考: Vagrant や Docker を使わずに macOS でマストドンの開発環境を構築する – Qiita

まずは開発ガイドラインを読もう

マストドン公式 開発ガイドライン
https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Development-guide.md

.env.productionの修正

マストドンのソースが手元にある状態にしてまず最初にやるのがこのファイルの編集です。
下記の部分を変更していきます。

LOCAL_DOMAIN

localhost:3000

SECRET_KEY_BASE と OTP_SECRET

docker-compose run --rm -e RAILS_ENV=production web bundle exec rake secret

を二回叩いてちゃちゃっと設定します。

VAPID_PRIVATE_KEY と VAPID_PUBLIC_KEY

docker-compose run --rm web rake mastodon:webpush:generate_vapid_key

を一度だけ実行してコピペして貼り付けます。

SINGLE_USER_MODE

おひとりさまインスタンスにしたいときは

SINGLE_USER_MODE=true

複数アカウント作りたいときは

SINGLE_USER_MODE=false

にします。

アカウント新規作成画面やログイン画面にアクセスしようとするとID1番のユーザーのページに飛ぶ挙動になります。

DEFAULT_LOCALE

ja

日本語を使うので日本にします。

SMTP関係

SMTP_SERVER=localhost
SMTP_PORT=587
SMTP_LOGIN=
SMTP_PASSWORD=
SMTP_FROM_ADDRESS=notifications@example.com

使わないのでこうします。

compileをwebpacker-dev-server経由にする

sed -i 's/compile: true/compile: false/' config/webpacker.yml

rubyのインストール

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv && src/configure && make -C src
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
# 一度ここでシェルをログインし直す
cd ~/ws/mastodon
RUBY_VERSION=`cat .ruby-version`
echo $RUBY_VERSION
rbenv install $RUBY_VERSION
rbenv rehash
rbenv global $RUBY_VERSION
ruby -v

yarnのインストール

npm i -g n
n stable
npm -v
node -v
npm i -g yarn # brew install yarn でも良いかも

必要ライブラリのインストール

brew install autoconf ffmpeg gcc gdbm imagemagick libffi libidn libxml2 libxslt libyaml openssl pkg-config protobuf readline postgresql

ライブラリを個別インストール

CUR_RUBY_VERSION=`rbenv version | awk '{print $1}'`
echo $CUR_RUBY_VERSION
IDN_VERSION=`idn --version | head -n 1 | awk '{print $4}'`
echo $IDN_VERSION
NOKOGIRI_VERSION=`grep nokogiri Gemfile | egrep -ioh '[0-9\.]+'`
echo NOKOGIRI_VERSION
gem install nokogiri -v "$NOKOGIRI_VERSION" -- --use-system-libraries --with-xml2-include=/usr/local/opt/libxml2/include/libxml2
gem install idn-ruby -- --with-idn-dir=/usr/local/Cellar/libidn/$IDN_VERSION
## cld3のインストールがうまくいかないときは https://github.com/akihikodaki/cld3-ruby#openbsd こちらを試す
gem install cld3

postgres初期化と起動

pg_ctl -D /usr/local/var/postgres start
initdb /usr/local/var/postgres -E utf8
brew services start postgresql

yarn install

yarn install

db:migrate

RAILS_ENV=development rake db:migrate

bundle install

gem install bundler
rbenv rehash
bundle install

高確率でcld3がエラーとなる。こちらを試そう。

install redis

brew install redis
brew services start redis

Railsサーバー起動

RAILS_ENV=development bundle exec rails server

Webpackサーバー起動

RAILS_ENV=development NODE_ENV=development ./bin/webpack-dev-server --listen-host 0.0.0.0

sidekiq 起動

env PORT=3000 RAILS_ENV=development bundle exec sidekiq

streaming 起動

env PORT=4000 NODE_ENV=development RAILS_ENV=development yarn run start

admin作成

> 管理画面からアカウントを作成する
RAILS_ENV=development rails mastodon:confirm_email USER_EMAIL=admin@example.com
RAILS_ENV=development rails mastodon:make_admin USERNAME=admin
RAILS_ENV=development rails mastodon:confirm_email USER_EMAIL=guest@example.com
RAILS_ENV=development rails mastodon:make_admin USERNAME=guest