LoginSignup
6
4

More than 5 years have passed since last update.

Mastodon(railsアプリ)を別サーバに引っ越しする

Last updated at Posted at 2018-04-08

Mastodonを容量不足の問題のため別サーバへ引っ越ししました。
移行手順を備忘録として残しておきます。
全体像が分かりやすいように多少シンプルに書いています。

前提

  • サーバAからサーバBへ移すことを前提とする※どちらもnon-docker
  • ドメインは同一のものを使用し、Aレコードを変更する

移行前の事前準備

  • 移行することをインスタンス内で告知し、バックアップする手順を案内

9be6b7f698bb8b03.png

  • 公式のインストール手順を参考にサーバBへMastodonを新規で入れて動作させておく
  • rsyncコマンド(下記がコマンド例)でサーバAのMastodonメディアファイルをサーバBへ同期させる
rsync -av --delete -e "ssh -p SSHのポート名" /home/サーバAユーザ/public_html/mastodon/public/system/ サーバBユーザ@サーバBのIPアドレス:/home/サーバBユーザ/public_html/mastodon/public/system/
  • DNS切り替えのためドメインのTTLを短くしておく

移行作業

  • サーバAとサーバBのMastodon系のサービスをstopさせる
  • 下記のコマンドでサーバAのDBデータをエクスポート
pg_dump -U mastodon -Ft mastodon_production > /home/サーバAユーザ/mastodon_production.tar
  • SFTPなどでサーバAのDBデータをサーバBに移す
  • サーバBでエクスポートしたサーバAのDBデータをインポート
pg_restore -U postgres -d postgres -v -C -c -Ft /home/サーバBユーザ/mastodon_production.tar
  • 移行前の事前準備で実施したrsyncをもう一度実施して、差分が出た分の同期をとる
  • サーバBの.env.productionファイルのドメイン情報を書き換える
  • certbotコマンドなどでサーバBの証明書を新規発行
  • RAILS_ENV=production bundle exec rails mastodon:feeds:buildでホームの再構築※移行させると何故かホームが空っぽになるので
  • bundle exec rails r 'Rails.cache.clear'でRails(+ Redis & memcached) キャッシュのクリア
  • サーバBのMastodon系のサービスをstartさせる
  • 動作の確認が取れたらドメインのTTLを元に戻しておく

下記のURLを参考にさせていただきました、ありがとうございました

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4