せっかくなのでAWSのおひとりさまインスタンスを作った方法など紹介してみる
検索すると2017年ごろの導入記事が多く(私が前回失敗した原因の)Docker前提だったりするんだけど、そんな中で参考になったたのはこちら
AWS環境で、Mastodonを構築する
https://qiita.com/taro-hida/items/07bd0368ca72db40492f
AWSのリージョンは前回と同じus-west-2(オレゴン)。インスタンスも前回と同じ、無料枠のある t2.microに8GBのSSD。
データ領域は前回ハマった要因の一つなので、初めからS3を導入する予定で進めた
設定した順番は
1. EC2のインスタンス作成
1-1. セキュリティグループを設定
2. S3バケット作成
2-0. アクセスキーIDとシークレットアクセスキーを取得
2-1. バケットを使うユーザーグループを作成
3. EC2起動
3.1 swap作成
ここで公式が提供しているインストラクションに入る
mastodon official install
apt, NodeJs, PostgreSQL, System packages, Yarn, Ruby まで準備。
Rubyのインストールにやたらと時間がかかった
ここで mastodon というユーザーを作ってログイン
gitからレポジトリをクローンして、インストールスクリプトを起動
RAILS_ENV=production bundle exec rake mastodon:setup
Webpackがコケるけど、プロンプトはその後も続き、インスタンスの設定が終わる
ここでルートに(sudoのできるUbuntuに)戻り、nginxの設定。
ここから目に見えてハマった
インストラクション通りにやると、nginxが起動しない。理由は
/etc/nginx/sites-available/mastodon
の記述。example.com を自分のドメインに書き換えるのを忘れていた。
nginxが起動しても画面は真っ白だったので、エラーを読む(方法を検索する)
journalctl -u mastodon-web
これでWebpackできてなかったことを知った
Webpackを使うリソース裏コンパイルは、
RAILS_ENV=production bundle exec rails assets:precompile
しかしメモリが足りないと言われコンパイルは終わらない
RAILS_ENV=production bundle exec rails assets:clobber
をつけると、エラーがnodeのリソース不足に変わったので、
export NODE_OPTIONS="--max-old-space-size=2048"
でnodeが使える量を増やしてから
RAILS_ENV=production bundle exec rails assets:precompile
するとコンパイルが終了した
ここでrootに戻ってnginxを再起動 お馴染みの三点セットを入力
systemctl restart mastodon-web
systemctl restart mastodon-sidekiq
systemctl restart mastodon-streaming
ゾウさんが現れてエラーを告げる
もう一歩だ
ベタにインスタンスの再起動を実行すると、ログイン画面が表示された
だいたい二時間
そう難しくないので挑戦してみるのはアリですよ
ちょっとだけ失敗したなーと思ってるのは、シングルユーザーで立ち上げてしまったこと。
もう一つニュース収集用のアカウントがあると、ローカルのタイムラインが賑やかになるんですよね。