快速上手
克隆模板、配置环境变量,几分钟内在本地跑通全栈。
zmlkit 是一套全栈 AI SaaS 模板:一个 Next.js Web 应用(营销站、用户后台、管理后台与全部 API)加一个 Expo 移动端,共享同一个后端,内建多 App 隔离。本文带你从干净的 checkout 跑到本地可用。
前置要求
- Node.js 20+ 与 pnpm 9+
- 一个数据库——推荐 Docker Postgres,或者什么都不装,用 SQLite dev 模式
- 可选:手机装 Expo Go(如需运行移动端)
Docker 快速启动
在干净的 checkout 下,确保 Docker 已运行:
pnpm install
cp docs/env/web.env.example web/.env.local
# 编辑 web/.env.local:设置 AUTH_SECRET(openssl rand -base64 32)
docker compose up -d postgres
pnpm --filter web db:generate
pnpm --filter web db:migrate
pnpm --filter web db:seed # 权限 / 角色 / App / 超管
pnpm --filter web db:seed:demo # 可选:演示内容 + 示例 AI 历史
pnpm --filter web dev # http://localhost:3000用种子演示账号 demo@test.com / supersecret1 登录。管理后台在 /admin。
无 Docker 快速启动(SQLite dev 模式)
不需要 Docker 也不需要数据库服务——本地文件 web/dev.db 就是数据库。此模式仅用于本地开发/试用,生产请用 Postgres 或 MySQL。
在 web/.env.local 中设置:
DATABASE_PROVIDER=sqlite
DATABASE_URL=file:./dev.db然后执行与上面相同的 db:generate / db:migrate / db:seed / dev 命令。要重置数据库,删除 web/dev.db 后重跑 migrate + seed。
开箱即得
- 营销站:locale 路径路由(12 种语言)、JSON 驱动的落地页 block、博客、文档与 SEO 落地页
- 认证:邮箱密码(Argon2id)、OAuth(Google/GitHub)、哈希会话、App 绑定令牌
- AI:流式对话(SSE)与图/视频/音频生成,统一 provider 抽象,积分 hold → confirm/refund 全链路
- 计费:Stripe + Waffo Pancake 网页结账、RevenueCat 移动端内购,统一归一化的 webhook 管线
- 管理后台:用户、订单、积分、AI 历史、内容 CMS、反馈、审计日志
- 移动端:连接同一后端的 Expo 客户端