用 WorkBuddy 把两个 Node 网站搬上云:基金导航站 + Markdown 编辑器,宝塔托管实战复盘
隐私说明文中域名、服务器地址、路径等均为示意占位非真实信息。一、引子一个人 一个 AI 助手最早这两个站都是借壳跑的——一个挂在 Coze 发布页里一个用现成模板凑合。能用但有两个痛点数据不在自己手里编辑器的文档存别人家想导出、想加功能都不自由想加后端能力时被卡住基金站要聚合多个数据源、做缓存纯静态壳搞不定。于是我决定自己写后端、自己部署。但说实话一个人既要写代码、又要配服务器、还要和宝塔面板较劲体力活不少。这趟我换了个打法——让 WorkBuddy 当我的部署搭子从写代码到 SSH 上线大部分脏活交给它。二、技术选型两个站都用Node.js Express做后端前端是普通静态资源由 Express 直接托管。站点域名后端端口特点基金数据导航站fund.example.comNode 服务pm2:fund-app3000聚合基金数据、导航Markdown 在线编辑器md.example.comExpress markdown-it DOMPurify highlight.js3100编辑/预览、文档存data/docs.json编辑器这块我提了体验要求WorkBuddy 照着实现了深色顶/底栏、浅色编辑区、编辑/预览一键切换、标签页、字数/段落统计、状态徽章。渲染用markdown-it防 XSS 用DOMPurify代码高亮用highlight.js。三、WorkBuddy 是怎么帮我落地的这部分是本文重点。部署不是写篇文章那么简单它拆成了四块WorkBuddy 各管一摊1. 写代码Express 服务server.js、编辑器前端 UI、/api/docs增删改查、渲染管线markdown-it DOMPurify highlight.js——这些它直接产出我负责提需求和验收。2. 写部署脚本它生成了deploy_md.py用 Python 的paramiko走 SSH自动完成连服务器 → 上传代码 →npm install→ pm2 启动 → 写 nginx 反代 → 健康检查一条龙。以后改完代码跑一下脚本就上线。3. 干上线的脏活SSH 连进服务器、装依赖、配 pm2 守护、写 nginx 反向代理、申请 HTTPS——这些重复且容易手抖的步骤交给它执行比我自己敲更稳。4. 排雷并沉淀成技能宝塔面板的「Node 项目」注册有不少暗坑下面详述WorkBuddy 现场一个个趟平还顺手把整套SSH 部署 面板原生 Node 项目注册沉淀成了一个可复用技能baota-ssh-deploy。下次换台服务器直接调技能就行。一句话我是产品经理 验收员WorkBuddy 是全栈工程师 运维。分工清楚了效率就上来了。四、部署流程以编辑器为例1. 本地能跑通npm install npm start # server.js 监听 PORT默认 31002. 在宝塔建 Node 项目面板 → 网站 → Node 项目 → 创建运行目录/www/wwwroot/md.example.com/启动脚本node server.js端口3100Node 版本选v24.18.0勾选开机启动、进程守护底层即 pm2。3. 上传代码传server.js、public/、package.json等排除node_modules和data/docs.json面板自动跑npm install。4. 域名 反向代理域名 A 记录解析到服务器公网 IPNode 项目里「绑定域名」宝塔自动生成反代md.example.com:80 → 127.0.0.1:3100申请 Lets Encrypt 证书强制 HTTPS。5. 验证访问https://md.example.com/healthz返回 200 即可。基金站流程一致端口3000、域名fund.example.com。五、两个站的差异与同机要点端口隔离同机多 Node 服务各自占不同端口3000 / 3100nginx 按域名反代避免抢端口。存储目录属主编辑器data/由 root 写入运行用户设为root基金站用www权限隔离、互不影响。端口兜底server.js写成PORT parseInt(process.env.PORT) || 3100——宝塔启动脚本不一定注入 PORT留默认端口能避免和已占用的 3000 冲突。六、踩过的坑WorkBuddy 现场趟平的端口冲突基金站先占了 3000编辑器若也用 3000 起不来。固定分配 代码兜底解决。宝塔 Node 版本面板自带版本管理器选对v24.18.0否则依赖装不上。面板项目名正则项目名只接受^\w$带点域名要先建md_editor再改名为域名否则创建被拒。域名绑定两步先project_add_domain加域名再bind_extranet开外网映射才生成面板托管的反代配置。上传别带机密node_modules和已有data/docs.json要排除别把环境数据和依赖传上去。七、小结两个站跑通后维护成本很低本地改 → 传代码 → 重启。而这次最大的体感变化是——有 WorkBuddy 当搭子部署从硬扛变成了验收。核心经验一句话多个 Node 服务同机部署用「宝塔 Node 项目 pm2 守护 nginx 按域名反代 端口隔离」最省心把重复流程交给 AI 助手人只管提需求和验收。如果你也在折腾个人网站部署或者想试试让 AI 助手帮你干运维脏活欢迎在评论区聊聊 本文由 WorkBuddy 辅助撰写与部署部署过程中的服务器密码等敏感信息均已脱敏仅保留可复用流程与配置思路。

相关新闻

最新新闻

日新闻

周新闻

月新闻