AI 帮我速成的项目,我第一次全程指挥着把它部署上线了
notebook 这个项目其实是 AI 帮我速成的。Vue 3 前端、FastAPI 后端、SQLite 存储,我提需求、AI 写代码、我验收,几天就出来了,规划文档里连 Docker Compose 都写好了。
但代码写完不算完,得让它真正跑起来。今天我第一次尝试自己部署——准确地说,是我全程「指挥」两个 agent 干活,自己负责看结果、拍板。
第一步:得先有个能指挥的
原计划在服务器上手动敲命令,后来想,为什么不直接装个码道 CLI,让它来执行呢。
装得很顺,一条 Linux 安装命令,版本号正常回显。问题出在真正让它干活的时候:我让它查 80 端口占用,它说看不到;让它进目录看看,它让我提供路径。
一开始我还以为它坏了。查了文档才明白,CLI 默认跑在 sandbox 模式,bash 命令默认是禁止的,得先去配置权限白名单。没配之前,它只能跟我聊天,不能动手。
第一课:AI 工具装好了不等于能用,先看它默认允不允许动手。
第二步:服务器上本来就有一个能干活的
我服务器上一直装着一个 hermes-agent,之前折腾自动化装的,一直没派上用场。这次直接让它上:克隆仓库、写 systemd 服务、配 Nginx、加访问认证。
接下来的过程就变成了:我说一句,它干一段,我看结果,判断对不对,不对就纠正它重来。下面五个坑基本都是这么踩出来的。
坑一:Docker 起不来,我决定换赛道
按规划执行 docker compose up -d --build,容器一直起不来,日志里是 pyrsistent 的依赖冲突。
我不懂它的内部原理,但明白两件事:这是版本兼容问题,继续纠结不知道要耗多久。于是做了个新手也能做的判断——项目就三部分:uvicorn 后端、前端静态文件、一层 Nginx,不用 Docker 也能跑,换成 systemd + Nginx 裸机。
后来证明这个判断是对的:裸机反而简单,出问题看日志更直观。
坑二:npm build 说找不到 node:url
前端构建失败,报 node:url 缺失。这个报错我一开始完全看不懂,agent 告诉我:代码里用到了 Node 内置模块的类型,但项目没装类型定义。
照着做就过了:
npm i -D @types/node
tsconfig.json 里加 "types": ["node"]。
我的收获是:看不懂报错没关系,先问清楚「缺的到底是什么」,逐字对上再动手。
坑三:加标签 404,我猜错了接口
给笔记加标签一直 404。我按直觉传 POST /notes/{id}/tags,猜了两次都不对。让 agent 去看后端路由代码才发现:实际是 PUT /notes/{id} 整体更新,tag_ids 只是笔记的一个字段。
新手最容易在这里想当然——「加东西不应该用 POST 吗」。但接口怎么设计是写后端的人决定的,别猜,看代码。
坑四:云端容器跑不长
中间也试过把服务放回开发者空间里跑,但云端容器有时效限制,长跑不稳。自己的服务器 systemd 开机自启、进程挂了自动拉起,省心得多。
坑五:上线前先加个密码
裸机跑通后,Nginx 直接对外,等于门锁都没装。agent 教我加 basic auth,步骤不多:
sudo htpasswd -bc /etc/nginx/.htpasswd admin '你的密码'
Nginx 配置里加两行 auth_basic 和 auth_basic_user_file,nginx -t 检查语法后 reload,再访问就要输入用户名密码了。
部署完成
现在浏览器打开、输入密码,这个笔记应用就能用了。从代码到上线,第一次完整走完。
说实话,动手的主要是 agent。我做的是几个判断:Docker 值不值得继续折腾、404 应该去看代码而不是猜、上线前要不要加认证、每一步的结果对不对。但这一套判断,以前的我是没有的——以前这些活要么找人帮忙,要么根本做不了。
新手能做的事,确实和以前不一样了。下一步想把这次的部署流程固化成自己的 skill,下次有新项目能少问 agent 几遍。
你们第一次自己部署项目是什么体验?有没有那种「指挥 agent 干活、但每个决定都得自己拍板」的感觉?评论区聊聊。
- 点赞
- 收藏
- 关注作者
评论(0)