跳过正文

Mastodon搬家迁移教程

·1472 字·3 分钟· ·
Mastodon
Yann Howard
Yann Howard
真的就这么晚,急不来
目录
mastodon - 这篇文章属于一个选集。
§ 3: 本文
本篇就mastodon迁移做个详细的教程,哪怕服务器炸了,再也不怕mastodon数据丢失。

用的是cloudflare R2作为存储,如果有这个需求,可以参考这个教程:

CloudFlare R2图床搭建教程,可能是目前最完美的解决方案!

压缩目录
#

在原服务器上压缩目录(以/home/mastodon/mastodon)

cd /home/

tar -czvf /home/mastodon.tar.gz -C /home mastodon

安装rsync
#

用rsync传输文件会快很多,可以节省很多时间。

新服务器上安装rsync(以Debian/Ubuntu 为例)

sudo apt update

sudo apt install rsync

传输文件
#

登录旧服务器,传输之前已经打包好的文件。

rsync -avz --progress -e "ssh -p 端口" /home/mastodon.tar.gz root@IP:/home/

如果之前有用过rsync传输,但新服务器重装过系统,那么需要先删除删除旧的 SSH 主机密钥

ssh-keygen -f "/root/.ssh/known_hosts" -R "[ip]:端口"

然后再传输

解压文件
#

登录新服务器,进行解压文件操作

cd /home/

sudo tar -xzvf /home/mastodon.tar.gz

这样就可以看到在home目录下有Mastodon文件

清除压缩文件(可选)
#

sudo rm /home/mastodon.tar.gz

这样就已经成功把mastodon迁移到新的服务器上,只需要再安装SWAP、docker和docker-compose以及ngnix就可以正常运行了。

创建 SWAP 分区
#

检查是否已启用SWAP空间
#

sudo swapon --show   #未启用SWAP分区的话,执行此命令将不会有任何输出

创建SWAP文件
#

sudo fallocate -l 2G /swapfile      #创建大小依据实际物理内存大小自行调整
#或使用dd命令创建
sudo dd if=/dev/zero of=/swapfile bs=512M count=4

创建完成后,给与 SWAP 文件 600 权限

sudo chmod 600 /swapfile

标注 SWAP 区域

sudo mkswap /swapfile

激活 SWAP 分区

sudo swapon /swapfile

查看 SWAP 分区是否工作

sudo swapon --show
sudo free -h

将创建的 SWAP 分区设置为永久分区,将 SWAP 路径写入到/etc/fstab文件中

/swapfile swap swap defaults 0 0

安装docker和docker-compose
#

bash <(curl -L https://get.docker.com/)
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

安装并配置nginx
#

在这一步之前,请记得到您购买域名的网站(如NameCheap),在DNS设置中添加一个A Record,Host填写@(如果没有子域名需求),Value填写你服务器的IP地址,将你设定的域名指向你的服务器。

请注意:此时你的DNS Setting里除了你刚才在邮箱配置和本步骤中亲自设置的内容之外,别的任何由域名商自动生成的内容请都删光。

安装nginx
#

sudo apt install nginx -y

配置nginx
#

nano /etc/nginx/sites-available/你的域名

网页打开nginx模板,将其中的example.com替换成自己域名,将28和56行的/home/mastodon/live/public改成/home/mastodon/mastodon/public,**更新:**并将try_files $uri =404;修改为try_files $uri @proxy;,复制到服务器中保存。

随后配置镜像文件

ln -s /etc/nginx/sites-available/你的域名 /etc/nginx/sites-enabled/

nginx -t检查,无误后重启(如果提示ssl证书问题,请在listen 443 ssl http2;listen [::]:443 ssl http2;等包含ssl的行前加#号先行注释掉,配置完ssl证书后再改回来):

systemctl reload nginx

配置SSL证书
#

apt install snapd
sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot certonly --nginx -d 你的域名

在这期间要输入邮箱,连续两次选择“

重启nginx

重新打开nginx配置文件,将ssl_certificatessl_certificate_key两行前的#号(以及你刚才添加的#号)删除。

nginx -t检查是否有错误。

如果没有错误,则可重启nginx:

systemctl reload nginx

检查证书更新

最后,可通过

certbot renew --dry-run

检查证书是否能自动更新。

启动Mastodon
#

cd /home/mastodon/mastodon

运行

docker-compose down
docker-compose up -d

重启mastodon。静静等待几分钟后,点开你的域名,你的站点就上线啦

mastodon - 这篇文章属于一个选集。
§ 3: 本文