前言
我服务器上有几十个 Web 站点,因为服务器配置较低,都是在本地完成构建后通过 scp 推到服务器,每个项目里就维护了一个 shell 脚本。
大概下面这样:(zx 脚本)
await $`scp ${compressPkgName} ${user}@${fullOrigin}:./`await $`ssh -p22 ${user}@${fullOrigin} "tar -xf ${compressPkgName} -C ${destDir}"`
这个样子持续了差不多好多年,但始终感觉不优雅,最近刚好 AI 够强,就把一直想实现的一个部署的 CLI 实现了。
服务器只管收 + 解压 + 重启(如果带后端服务)。
于是有了 Kite —— 装一个 CLI 就能跑起 Web 管理端 + Server 后端 + 一键上传。
快速开始
npm install -g @kitecd/cli
kite serve
启动后浏览器打开 http://127.0.0.1:5431 就是管理后台。
Starting Kite Server...Runtime: bun v1.3.12Host: 127.0.0.1Port: 5431Web Dir: /Users/sugar/Documents/fe/Kite/packages/cli/dist/webDB Dir: /Users/sugar/.kiteAdmin Token: admin_fb3635137🦊 Server is running on bun at http://127.0.0.1:5431
🔑 Login Token: admin_fb3635137
线上部署可以通过 pm2,使用 NG 反向代理站点。
kite serve --pm2
新建项目
只需要录入项目名和部署目即可
部署
项目概览页提供了部署的指令复制即可。
本地项目里执行初始化指令,生成 kite.config.json。
kite init --project proj_669571accfa5 --out ./dist --server http://127.0.0.1:5431 --token kt_a6029f276c354caca86b65960804d22c
{"projectId": "proj_669571accfa5","serverUrl": "http://127.0.0.1:5431","outputDir": "./dist","files": ["**/*"]
}
部署,执行 kite push 即可。
kite push 会自动完成:合并配置 → 打包 outputDir → 上传到 Server → 依次执行 preDeploy / 解压 / postDeploy。
kite push
多环境支持
如果一个项目需要推到多个服务器或者不同项目目录。
会自动扫描符合 kite.config.xx.json 的配置。 kite push --env xx 即可,或者交互式选择。
使用的技术栈
- 前端:Vue 3 + Vite + Pinia + Vue Router
- 后端:Bun / Node + Elysia + libSQL(Drizzle ORM)
- CLI: cac + ora + chalk
GPT + MiMo 一起写出来的
MiMo 完成了大概 80% 的代码,15% 是 GPT。
这个CLI服务端 支持 Bun 和 Node两个运行时,部分适配靠 GPT 搞定
流程:先使用 plan 模式把需求和实现的核心功能确定下来。
然后拆好 step ,让它挨着执行,然后配合给到的测试用例,验收一下。
然后就是 case by case 的修复问题。
最后
- 仓库:https://github.com/ATQQ/Kite
- 文档:https://docs.kite.sugarat.top/
下一个 VibeCoding 的新坑也开好了,猛猛的蹬。
欢迎评论区交流 & 拍砖。
