登录

快速上手

克隆模板、配置环境变量,几分钟内在本地跑通全栈。

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 客户端

下一步

  • 配置 —— 所有配置都是环境变量,了解约定。
  • 部署 —— Vercel、Docker 或 Cloudflare Workers。
  • 二次开发 —— 品牌化、加页面、加 provider、加 App。