理由

  • UIが好きになれなかった
  • 文字コード廻りでエラーが発生した
  • ドキュメントが少ない

構成

AWS Lightsail

  • 5ドルプラン(メモリ1GB・SSD40GB)
  • Ubuntu 22.04

今回はDockerコンテナではなく、ホストに直接インストールした。

知見

インストールは公式の Installing from source に従ってインストールした。

スワップ

スワップは必ず用意する。1GBの場合、スワップは3GBでいいというネット情報を鵜呑みして3GB用意。

sudo dd if=/dev/zero of=/swapfile bs=1M count=3072
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

起動時に有効になるように /etc/fstab へ追記

echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/fstab

freeコマンドで有効になってるか確認する。

free -h
               total        used        free      shared  buff/cache   available
Mem:           924Mi       666Mi        63Mi        11Mi       195Mi        86Mi
Swap:          3.0Gi       829Mi       2.2Gi

初回セットアップ時のアセットファイルのコンパイルで失敗する

メモリが足りないため失敗する。

一旦失敗したファイルを削除する。

bundle exec rake assets:clobber RAILS_ENV=production

nodeのオプションを付けて再コンパイル

bundle exec rake assets:precompile RAILS_ENV=production NODE_OPTIONS=--max_old_space_size=924

これで成功した。

メールの再テスト

サーバからのメールちゃんと届く?(Mastodonサーバ管理者向け チェックリストの解説) より
mastodonユーザーで、liveディレクトリより

RAILS_ENV=production bin/rails runner "UserMailer.new.mail(to:'admin@example.com', subject: 'test', body: 'awoo').deliver"

で再度メールを飛ばせる。リンクした記事は知見が多くて助かる。

まとめ

Mastodonインスタンスにメモリ1GBでは正直つらい😭