マストドンサーバのアップデートと全文検索(→Ver4.2)

413

個人マストドンサーバのアップデートを行いました。

技術的にどうこう言えるようなスキルはないですし、やり方も他のサイトにあった手順そのままなんですが、マストドンに関する日本語のドキュメントは異常に少なく、必要な情報にたどり着くのに非常に面倒なので、ここにも書いておきます。ついでに Erasticsearchの導入による全文検索もできるようにしました。

今回の環境は、Ubuntu 22.04.3 LTS,非Docker,Ver4.1.4→4.2です。

Mastodonのアップデート

  • VPSであればリカバリ用スナップショットを取得しておく
  • これはお使いのサービスの手順に従ってください。
     

  • 一旦マストドンサーバを停止する
  • 下記コマンドにて3つのサービスを停止します。

     systemctl stop mastodon-web mastodon-sidekiq mastodon-streaming.service
    

     

  • マストドンユーザになる
  • 下記コマンドにてマストドンのメンテナンスユーザーになってください

    su - mastodon
    

    一部のサイトで紹介されているマストドン構築手順では、ユーザ mastodonのパスワードを設定していなかったり、ログインシェルが nologin になっていることがありますが、mastodonユーザで作業が必要ですので、一時的でもいいのでユーザ情報を修正して、ログインできるようにしてから行ってください。
     

  • マストドンのディレクトリに移動
  • 下記コマンドにてマストドンのディレクトリに移動してください。環境により場所はことなりますが、AUTHORS.md のある場所に移動すればいいです。

    cd /var/www/mastodon/
    

     

  • github 上の最新情報を取得
  • 下記コマンドにて実行します。結果として、現在取得できるバージョンの一覧的な文字列がずらずらと返ってくればOKです。

    git fetch origin
    

     

  • 適用するバージョンをダウンロード
  • 下記コマンドにてダウンロードします。今回は Ver4.2です

    git checkout v4.2
    

     

  • gem等の更新
  • 下記コマンドにて行います。今回、これに30分以上かかりました。

    bundle install

     

  • フロントエンドの更新
  • 下記コマンドにて行います。これはすぐ終わります

    yarn install

     

  • DBのマイグレーション
  • 下記コマンドにて行います。今回はマイグレーション不要だったので、「必要ないですよ」的なメッセージが出ただけでした。

    RAILS_ENV=production bundle exec rake db:migrate

     

  • アセットのコンパイル
  • 下記コマンドにて行います。今回15分くらいかかりました。

    RAILS_ENV=production bundle exec rake assets:precompile

     

  • サービスの再開
  • 下記コマンドにて3つのサービスを再開します。

     systemctl start mastodon-web mastodon-sidekiq mastodon-streaming.service
    

     

  • サービスの確認
  • 下記コマンドにて3つのサービスの稼働を確認します。

     systemctl status mastodon-web mastodon-sidekiq mastodon-streaming.service
    

     

あとはWEB画面が見られることを確認すればOKです。サーバのメイン画面の右下に、現在のバージョンが表示されます。

 
 

Elastic searchのインストールとマストドンでの有効化

構築方法に関してはこちらのサイトに譲ります。

https://mastodon-docs.vercel.app/admin/optional/elasticsearch/
 


検索窓にこのようなオプションが表示されるようになればOKです。
 


自分以外のユーザーも検索できるようにするためには、ここで検索を有効にしましょう。
 


しかし ElasticSearch まで入れるとサーバ資源を喰いますね……メモリ2GBのVPSではキツイかも。