WeAir

迁移Mastodon到新服务器

在新服务器上按照安装指导重新配置Mastodon相关服务,但不执行mastodon:setup操作。

在旧服务器上停止Mastodon服务

1
systemctl stop 'mastodon-*.service'

导出数据库

1
2
# 旧服务器上导出数据库
pg_dump -Fc mastodon_production -f backup.dump

导入数据库

1
2
3
4
5
6
7
8
# 新服务器上切换用户
su - mastodon

# 新服务器上以mastodon用户创建数据库
createdb -T template0 mastodon_production

# 新服务器上导入数据库
pg_restore -Fc -U mastodon -n public --no-owner --role=mastodon -d mastodon_production backup.dump

复制 system/ 文件及 .env.production 配置文件

1
2
3
# 旧服务器以mastodon用户复制相关文件至新服务器上
rsync -avz ~/live/public/system/ mastodon@new.machine:~/live/public/system/
rsync -avz ~/live/.env.production mastodon@new.machine:~/live/.env.production

复制Redis数据库

1
2
3
4
5
6
7
# 新服务器上确保Redis服务未运行
systemctl stop redis-server.service

# 旧服务器上以root用户复制相关文件至新服务器上
redis-cli SAVE
systemctl stop redis-server.service
rsync -avz /var/lib/redis/ root@example.com:/var/lib/redis

在新服务器上重新编译Mastodon

1
RAILS_ENV=production bundle exec rails assets:precompile

在新服务器上启动Mastodon及相关服务服务

1
2
3
4
systemctl daemon-reload
systemctl start redis-server.service
systemctl enable --now mastodon-web.service mastodon-sidekiq.service mastodon-streaming.service
systemctl restart nginx.service

在新服务器上重建时间线

1
RAILS_ENV=production ./bin/tootctl feeds build

更新域名DNS指向新的服务器

其它问题可查询官方文档