该渲染由 marked 生成,可能存在排版问题,最佳体验请前往:https://xxu.do/posts/geek/redeploy-MixSpace%2BShiroi
昨天刚对博客的架构进行了一波更新,今早醒来发现服务器到期了,导致网站直接 Down,甚至没有到期提醒的邮件。
本计划到期后不再续费,而到期后已经无法连接上服务器了,里面的数据也取不出来。所幸之前有良好的备份习惯,定时将数据备份到 OneDrive,具体可参见这篇文章。
但尴尬的是,此前仅备份了数据,没有备份部署的环境变量,这导致了一些问题,我认为值得记录一下。
和此前部署的文章一致,唯一需要注意的也是本次部署中遇到的麻烦是 .env 文件的撰写。在 ALLOWED_ORIGINS
中仅填写域名即可,不要填写 https://xxu.do。
[object Object]
本次部署的方式:利用 GitHub Action 去构建 Shiroi 然后部署到远程服务器,主要参考了这篇文章。
首先在服务器中进行以下操作:
Nodejs
和 unzip
[object Object]
Node.js
, npm
, pnpm
, pm2
, sharp
[object Object]
shiro
的目录,然后新建 .env
填写你的变量。[object Object]
NEXT_PUBLIC_API_URL
和 NEXT_PUBLIC_GATEWAY_URL
如下填写即可,GH_TOKEN
可从这里新建,权限勾选 repo 即可。[object Object]
Settings -> Secrets and variables -> Actions -> Repository secrets
中添加以下内容:HOST
服务器地址USER
服务器用户名PASSWORD
服务器密码PORT
服务器 SSH 端口KEY
服务器 SSH Key(可选,密码 key 二选一)GH_PAT
可访问 Shiroi 仓库的 Github Token其中 GH_PAT 可以和上面的 GH_TOKEN
保持一致。
在 Fork 仓库下的 Action 中,启用 workflow;随意修改 build_hash 文件后,workflow 就启动了,如果运行成功就可以到自己的服务器里 /root/shiro
文件夹下看是否有构建好的文件了;一开始运行失败,后查明原因是没有部署 pm2,供参考。
Action 定时执行:进入Github Fork的项目中,修改 .github/workflows/deploy.yml
文件,去掉 schedule:
和 -corn: '0 3 * * *'
两行的注释即可。
单域名的示例:
[object Object]
本次重新采取新的前端部署方式,确实是解决了内存占用过高的问题。
另外,也带来一个教训,一定要备份好 .env
文件,这对于重新部署来说会避免很多麻烦。