起点:绑定在低代码平台上
学情追踪系统的第一个版本是在某个低代码 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 | cszd.asia (Nginx + SSL) |
感悟
独立部署带来的不仅是技术自主权,更是对系统全貌的完整理解。从平台绑定到自主可控,这个过程让我从”用工具的人”变成了”造工具的人”。
如果你也有一个绑定在平台上的项目,不妨试试迈出这一步。AI 可以帮你完成 90% 的迁移代码,剩下的 10% 才是真正需要你理解的部分。