从平台绑定到独立部署——一个项目的成长之路

起点:绑定在低代码平台上

学情追踪系统的第一个版本是在某个低代码 AI 编程平台上搭建的。好处是快——几天就出了原型。代价是深度绑定:

  • 数据库凭据由平台管理,看不到
  • 环境变量通过 Python 脚本从平台注入
  • LLM 调用依赖平台的 SDK
  • 文件存储走平台的 S3 兼容接口
  • 部署域名是平台提供的子域名

离开平台,系统就是一堆跑不起来的代码。

转折:决定独立部署

当我们需要自定义域名、控制数据主权、降低运营成本时,独立部署就不可避免了。

解耦四步走

第一步:环境变量标准化

原来的环境变量通过 execSync('python3 ...') 调用平台 API 获取——这段代码在任何非平台环境都会静默失败。改造方案是用标准的 dotenv 方案,所有配置写入 .env.production 文件。

第二步:对象存储迁移

从平台的 S3Storage → 腾讯云 COS。好在 COS 兼容 S3 协议,代码改动很小——换个 endpoint 和密钥就行。

第三步:LLM 客户端独立化

从平台的 LLMClient → 自建的 OpenAI 兼容客户端。支持 OpenAI、豆包、DeepSeek、硅基流动等多个厂商,通过数据库配置灵活切换。

第四步:部署到自己的服务器

  • 操作系统:Ubuntu 24.04 LTS
  • 反向代理:Nginx(双站点:博客 + 应用)
  • 进程管理:PM2(双实例集群模式)
  • HTTPS:Let’s Encrypt 免费证书自动续期
  • 数据库:Supabase 托管 PostgreSQL(保留,没有迁移)

域名和备案

购买了 cszd.asia 域名,完成了 ICP 备案(湘ICP备2026025401号)。主站放个人博客(Hexo 静态生成),应用放在 /zhidao 子目录下。

架构一览

1
2
3
cszd.asia (Nginx + SSL)
├── / → Hexo 博客(静态文件)
└── /zhidao → 知导伴学 AI(Next.js + PM2)

感悟

独立部署带来的不仅是技术自主权,更是对系统全貌的完整理解。从平台绑定到自主可控,这个过程让我从”用工具的人”变成了”造工具的人”。

如果你也有一个绑定在平台上的项目,不妨试试迈出这一步。AI 可以帮你完成 90% 的迁移代码,剩下的 10% 才是真正需要你理解的部分。