升级与回滚
日常运维有五个动作:升级、回滚、备份、恢复、卸载,都由安装时发放的同一套脚本完成。调用方式与安装一致——一行 curl 命令即可,不必先登录服务器,脚本会自行定位安装目录。
| 动作 | 脚本 | 说明 |
|---|---|---|
| 升级 | upgrade.sh | 备份 → 拉镜像 → 迁移 → 启动 → 健康检查,失败自动回滚 |
| 回滚 | rollback.sh | 只回退镜像版本,不撤销数据库迁移 |
| 备份 / 恢复 | backup.sh | 数据库快照,可恢复到指定备份文件 |
| 卸载 | uninstall.sh | 移除服务、容器与镜像,默认保留数据 |
安装目录默认是 /opt/mediabot;当初装在其他目录时脚本会自动探测,探测不到时用 INSTALL_DIR 指定(注意 sudo 默认清空环境变量,不能写成 INSTALL_DIR=... sudo bash):
sudo bash -c 'INSTALL_DIR=/data/mediabot; curl -fsSL https://mediabot.top/deploy/upgrade.sh | bash'下面每条命令都独立成块,点代码块右上角复制即可——一次只复制一条,块内没有多余内容。
默认写法是管道执行(curl ... | sudo bash),一行完成。但标准输入被管道占用,脚本里的确认提问(如回滚前的「确认回滚? [y/N]」)会被跳过、按非交互规则处理。需要回答这些提问时,先下载再执行:
curl -fsSL https://mediabot.top/deploy/upgrade.sh -o upgrade.shsudo bash upgrade.sh服务器访问不了官网时不用下载:安装目录里已有同名脚本,直接执行即可,全程不联网(见下方「已在服务器上时」)。
- 确认目标版本:在应用内点状态栏版本号 → 「立即检查」,记下最新版本号(下文以
vX.Y.Z代替)。 - 看变更记录:版本更新 列出了该版本的功能变更与修复,升级前可据此确认影响范围。
- 数据不会丢:配置与数据在部署目录的
data/下,升级只替换容器与镜像。
upgrade.sh 会完成完整流程:备份数据库 → 拉取新镜像 → 停止服务 → 数据库迁移与结构校验 → 启动 → 健康检查。任一步失败都会自动回滚到升级前的版本。
升到最新稳定版
Section titled “升到最新稳定版”curl -fsSL https://mediabot.top/deploy/upgrade.sh | sudo bash脚本读取 latest.txt 里写的具体版本号(如 v2.1.0)并固化到 .env。升级前的数据库备份存放在安装目录的 data/backups,确认无误后可删除。
升到指定版本
Section titled “升到指定版本”把末尾的 vX.Y.Z 换成目标版本号:
curl -fsSL https://mediabot.top/deploy/upgrade.sh | sudo bash -s -- vX.Y.Z已在服务器上时
Section titled “已在服务器上时”脚本随安装放在安装目录里,也可以不联网直接跑(安装目录不是 /opt/mediabot 时换成实际路径):
cd /opt/mediabot && ./upgrade.sh vX.Y.Z按下面三点确认,全部通过即可正常使用:
- 容器状态正常:
docker ps --filter name=mediabot显示Up且健康状态为healthy; - 浏览器打开
http://<宿主机IP>:<端口>能正常访问,底部版本号已变为目标版本(端口取.env里的WEB_PORT,默认 9015); - 概览页的「有新版本」待办会在下一个检查周期(约 6 小时)自动消失;想立刻确认可点底部版本号 → 「立即检查」。
启动失败时先看 docker compose logs --tail 100 app(app 是 compose 服务名,容器名固定为 mediabot):数据库迁移失败通常是连接问题,迁移完成后启动即恢复。
回到升级前的版本
Section titled “回到升级前的版本”升级脚本会记录升级前的版本,回滚一条命令即可:
curl -fsSL https://mediabot.top/deploy/rollback.sh | sudo bash直接指定某个旧版本
Section titled “直接指定某个旧版本”用升级命令指定旧版本号,即可回到该版本:
curl -fsSL https://mediabot.top/deploy/upgrade.sh | sudo bash -s -- v2.1.0注意:回滚只回退镜像版本,不会撤销数据库迁移。如果新版本引入了破坏性的数据结构变更、需要连数据一起退回,用备份恢复(见下)。
备份是数据库快照,建议升级前与定期各做一次。
curl -fsSL https://mediabot.top/deploy/backup.sh | sudo bash备份文件存放在安装目录的 data/backups。
查看已有备份
Section titled “查看已有备份”curl -fsSL https://mediabot.top/deploy/backup.sh | sudo bash -s -- list从指定备份恢复
Section titled “从指定备份恢复”把 <文件> 换成上一步列出的文件名:
curl -fsSL https://mediabot.top/deploy/backup.sh | sudo bash -s -- restore <文件>恢复前会先停止服务,请确认当前没有正在执行的任务。
卸载脚本会停止并删除容器与镜像、移除 systemd 服务(若安装时生成)。
卸载并保留数据
Section titled “卸载并保留数据”默认只停服并移除运行产物,不会删除 data/ 与数据库,便于误操作时重新安装恢复:
curl -fsSL https://mediabot.top/deploy/uninstall.sh | sudo bash额外删除 data/ 数据目录与内置数据库:
curl -fsSL https://mediabot.top/deploy/uninstall.sh | sudo bash -s -- --purge确认不再需要时才用 --purge。