kmyblue引っ越してみたメモ(2024年2月)
初出: わーさんのFediverse雑記 チラシ裏 Post No.9(2024-02-25)。kmyblue(Mastodon 系)を別の VPS へ移した最初の記録。2026 年 9 月の式年遷宮でもこの型(
.env.productionを写して DB を戻す)は同じで、feeds build忘れの前科はそのとき手順に組み込まれた → 式年遷宮の手順メモ
kmyblue引っ越してみたメモ
例によって長いので、畳みます。
後ほど、先達さんも記事を上げてくれるらしいです、楽しみ。
#わーさんがやってみた
kmyblueサーバー移行 やったこと
- 新鯖にkmyblueを新規インストール(参照0)して、mastodon:setup開始直前まで進める(mastodon:setupは行わない、データベースユーザーmastodonのパスワードは念のため旧鯖にそろえる)
- 旧鯖止める(参照1)
- .env.productionを移行(live下隠しファイル)
- バックアップするべき容量を減らす(参照2)
- Postgresのダンプとロードを行う(参照3)
- 旧鯖のローカルファイルを圧縮、新鯖に持って行って解凍(参照4)
RAILS_ENV=production bundle exec rails assets:precompileを実行し、Mastodon をコンパイル- 各ユーザーのホームタイムラインを再構築するために
RAILS_ENV=production ./bin/tootctl feeds buildを実行(しなかったので、タイムライン消えまくりw) - 新しいサーバーでマストドンを起動
- DNS 設定を更新
- Nginxの設定を更新またはコピーし、必要に応じてLetsEncryptを再実行(参照0に則って新規設定し直ししたが、参照5を試しても良かった)
参照0
https://github.com/kmycode/mastodon/wiki/Installation
参照1
sudo systemctl stop mastodon-{web,sidekiq,streaming}
参照2
# どのファイルが容量を食っているのか算出
RAILS_ENV=production bundle exec bin/tootctl media usage
# 過去の投稿を削除。日数は適宜調整
RAILS_ENV=production bundle exec bin/tootctl status remove --days=90
# プレビューカードを削除。日数は適宜調整
RAILS_ENV=production bundle exec bin/tootctl preview_cards remove --days=180
# リモートメディアを削除
RAILS_ENV=production bundle exec bin/tootctl media remove --days=0
# 孤立メディアを削除
RAILS_ENV=production bundle exec bin/tootctl media remove-orphans
参照3
mastodon:setup を実行する代わりに、template0 データベースを使用して空の Postgres データベースを作成 。
(これは Postgres のダンプをリストアするときに便利だそう。pg_dump のドキュメントに記載)
古いシステムの mastodon ユーザーで以下を実行。
pg_dump -Fc mastodon_production -f backup.dump
rsync または scp を使って backup.dump ファイルをコピー。
次に、新しいシステムで mastodon ユーザで空のデータベースを作成。
createdb -T template0 mastodon_production
そして、コピーしたバックアップをインポート。
(念のため、旧鯖と同じ位置にインポート、ユーザー権限やパーミッションもそろえておく)
chown --recursive mastodon: /home/mastodon/backup.dump
chmod 664 /home/mastodon/backup.dump
pg_restore -Fc -U mastodon -n public --no-owner --role=mastodon \
-d mastodon_production backup.dump
(新しいサーバでユーザ名が mastodon でない場合、上記の -U と --role の値を変更する必要があることに注意。なお、2つのサーバ間でユーザ名が異なっていても問題ない模様)
参照4
旧鯖にて
tar czf systemfiles.tar.gz /home/mastodon/live/public/system
これが作業ユーザーに入ったら新鯖に持っていく
解凍は(必要に応じてsudo入れつつ)
tar -xvf systemfiles.tar.gz
すると作業ユーザーの下に新たにhomeから増えたので、以下で持っていく(指定なければ作業ディレクトリ内の解凍らしいので、移動前パスは適宜探してください)
sudo mv /home/(ユーザ名)/home/mastodon/live/public/system /home/mastodon/live/public/.
参照5
Let's Encrypt SSL証明書の再発行
移行先サーバにて、 Let's Encrypt SSL証明書の再発行を行う。
sudo certbot certonly --standalone -d yourdomain.tld
(SSL証明書そのものをコピーしてこればいい説もあるが。。。)
Nginx の起動
↓ 一般ユーザ作業
# SSL証明書が正しく取得・インストールされていれば、問題なく立ち上がる
sudo systemctl start nginx
sudo systemctl start mastodon-{web,sidekiq,streaming}
参考サイト
- https://github.com/kmycode/mastodon/wiki/Installation
- https://dolphilia.com/translation/mastodon/running/migrating
- https://qiita.com/neustrashimy/items/520838806e4524b229b9
後で発見したサイト
その後(2026-09 追記): 2026 年 9 月の式年遷宮では、メディアを先に Cloudflare R2 へ逃がしてあったので「参照4」のローカルファイル運びが丸ごと不要になり、運ぶのは DB ダンプと .env.production だけになった。feeds build は手順に最初から入れてある。