该渲染由 marked 生成,可能存在排版问题,最佳体验请前往:https://xxu.do/posts/geek/update-Mix-Space-and-Shiro
迫 @innei 大佬一天数更的更新速度,为保证随时体验到最新的特性,写一个脚本来每日自动更新 Mix-Space 和 Shiro 非常有必要。
我的 Mix-Space 后端是用 Docker Compose 部署的,而前端是 Shiro 的闭源版本 Shiroi,编译后进行部署。
更新前后端的脚本如下:
#!/usr/bin/zsh
# 定义路径和版本变量
BACKEND_PATH="/root/mix-space/core"
FRONTEND_PATH="/root/mix-space/Shiroi"
NODE_VERSION="/root/.nvm/versions/node/v20.12.2/bin"
DATE=$(date)
# 更新后端
echo "开始更新后端..."
cd $BACKEND_PATH
if docker compose pull && docker compose up -d; then
echo "后端更新完毕。"
else
echo "后端更新失败。"
exit 1
fi
# 清除冗余的 Docker 镜像
/usr/bin/docker system prune -af
echo "---------------------------------------------"
# 更新前端
cd $FRONTEND_PATH
export PATH="$NODE_VERSION:$PATH"
output=$(git pull)
if undefined; then
echo "前端已经最新啦,不需要更新。"
else
echo "开始更新前端..."
npm install -g pm2
npm install -g pnpm
echo "pnpm 和 pm2 更新完成。"
echo "开始安装依赖..."
if pnpm i; then
echo "依赖安装完毕。"
else
echo "依赖安装失败。"
exit 1
fi
echo "开始编译..."
if pnpm build; then
echo "编译结束。"
else
echo "编译失败。"
exit 1
fi
echo "正在重启前端..."
if pm2 reload ecosystem.config.cjs; then
echo "重启前端完毕"
else
echo "前端重启失败。"
exit 1
fi
fi
echo "最后更新时间:$DATE"
我设置的是每天 1 点 10 分进行自动更新,将日志输出到 /root/sh/update.log
中,您可以参考。
crontab -e
10 1 * * * /root/sh/mix-space-shiroi-update.sh >> /root/sh/update.log 2>&1
我完全是一个写 shell 脚本的新手,虽然写的很烂,但卓有成效。
您如果有更好的主意,欢迎在评论区和我讨论。