No.9
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
後で発見したサイト
https://www.nan1.casa/blog/2023-06-12-backup-mastodon/
畳む
例によって長いので、畳みます。
後ほど、先達さんも記事を上げてくれるらしいです、楽しみ。
#わーさんがやってみた
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
後で発見したサイト
https://www.nan1.casa/blog/2023-06-12-backup-mastodon/
畳む
- ユーザ「和条門 尚樹」の投稿だけを見る (※時系列順で見る)
- この投稿と同じカテゴリに属する投稿:
- この投稿日時に関連する投稿:
- この投稿に隣接する前後3件ずつをまとめて見る
- この投稿を再編集または削除する


