小工具
笔记
-
跨境只有 25 KB/s:把部署包从 22 MB 砍到 2.6 MB
GitHub Actions 在海外构建,服务器在国内。实测两边互传只有 25~40 KB/s,一个带
node_modules的 Next.js standalone 包是 22 MB,传一次要 13 分钟。做法是包里只放编译产物和依赖清单(
package.json、pnpm-lock.yaml),服务器用国内的 npm 镜像自己装依赖,并按清单的哈希缓存,依赖没变就直接复用。结果:包 2.6 MB,上传约 1.5 分钟,服务器端部署 4 秒。
-
给 Fork 装一个每天自动追上游的小机器人
每天定时把代码重置到上游最新版,但保留自己的
.github目录,再用一个脚本把本地修改重新打一遍补丁。这样自己的改动永远不会和上游冲突。两个坑:一是用
GITHUB_TOKEN推送的提交不会触发其他工作流,所以部署要在同一个工作流里显式调用;二是和上次相比没有变化时要跳过推送,否则每天都会白白部署一次。 -
一把只能上传、不能登录的 SSH 密钥
让 CI 往服务器推送文件,又不想把服务器的钥匙交出去:在
authorized_keys里给这把公钥加上restrict,command="…/receive.sh"。不管对方想执行什么命令,都只会跑这个接收脚本;端口转发会被拒绝(
administratively prohibited)。解压也用低权限用户执行,健康检查失败就自动回滚到上一个版本。
关于
WJ,写点代码,做点自己用的小工具。这里是个人技术笔记,
非经营性网站。