# letsgo **Repository Path**: mengfly/letsgo ## Basic Information - **Project Name**: letsgo - **Description**: 一套多租户白标 SaaS 应用基座:Go 后端 + 超管端 + 租户端 + 白标小程序机制(微信小程序 + H5)。 隔离、鉴权、商业化、出包等工程底座全部开箱即有——新项目从"第 30 天"起步,而不是第 0 天。 - **Primary Language**: Go - **License**: MIT - **Default Branch**: main - **Homepage**: https://xiaoyinet.cn - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 9 - **Created**: 2026-08-18 - **Last Updated**: 2026-08-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Let'sgo · 多租户白标 SaaS 基座 一套多租户白标 SaaS 应用基座:Go 后端 + 超管端 + 租户端 + 白标小程序机制(微信小程序 + H5)。 隔离、鉴权、商业化、出包等工程底座全部开箱即有——新项目从"第 30 天"起步,而不是第 0 天。 ## 开箱即有 - **多租户底座**:数据访问层全局回调强制注入 tenant_id、fail-closed;前端自报租户标识一律不信;"禁用即彻底失效"(token_version 级联) - **账号体系**:超管 + 租户管理员(多人);落地页申请 → 审批 → 开通 → 到期置禁全生命周期;登录全家桶(账密 + 图形验证码 + 频控) - **商业化引擎**:套餐模板(免费/试用/正式)+ 按租户分配 + 到期回落免费版 + 功能门控 + 通道维度配额 + 用量计量,全部带审计 - **消耗型通道**:短信/OCR/语音转写/智能体大模型/人脸核验 五类通道统一抽象;四态授权(仅平台/仅自配/皆可/禁用);租户自配凭据不回显 - **白标小程序**:品牌/主题色/AppID/双密钥运行时生效;OEM 通用包一次构建、出包按租户注入;租户自助「上传体验版」进微信草稿箱 - **页面装修体系**:装修方案(首页+个人中心+底部导航一整套,启用即原子切换)、官方方案市场(超管从租户方案沉淀下发,可打包自定义页)、租户方案库、自定义页、自定义底部导航(上限 5 项)、内置图标库;编辑器画布即真机(iframe 嵌真机 H5 渲染同一份渲染件,所见即所得) - **存储与文件**:本地/COS/OSS 三驱动、租户可自配存储、浏览器直传签名、私有桶 + 时效下载端点 - **工程基座**:版本化迁移、审计日志、幂等键、金额到分精度、限流、Asynq 异步任务 ## 目录 ``` server/ Go 后端(server = API;worker = Asynq 消费端;migrate = 版本化迁移) web-admin/ 超管端(Vue3 + Element Plus;15 页全配置化) web-tenant/ 租户端管理后台(同栈,与超管端彼此独立) mobile/ 白标小程序 demo(uni-app;branding 演示页) packages/diy-kit/ 装修共享契约(组件/页面/链接/导航/方案,编辑器与小程序同源) packages/mp-uploader/ 微信上传器(miniprogram-ci 封装) deploy/ Docker Compose 编排 + Nginx 站点样例 + OEM 通用包构建链 docs/ 起步指南 / 能力接口清单 / 白标出包链路 ``` ## 快速开始(本机) ```bash # 1. 后端:配置 → 迁移 → 启动 cp server/config/settings.example.yml server/config/settings.yml # 改数据库连接与 jwt.secret cd server && go run . migrate -c config/settings.yml # 建库建表 + 种子(超管 admin / admin@123456,首登强制改密) go run . server -c config/settings.yml # API :8003 go run . worker -c config/settings.yml # 异步任务消费端(出包/日志清理) # 2. 前端两端 cd web-admin && npm install && npm run dev # 超管端 cd web-tenant && npm install && npm run dev # 租户端 # 3. 移动端 demo(H5) cd mobile && npm install && npm run dev:h5 ``` ## 文档 - `docs/开发文档.md`——二次开发总入口:架构、本地环境、构建产物、工程约定与任务落点 - `docs/数据库开发文档.md`——迁移机制、隔离模型、全部表结构与核心业务口径 - `docs/起步指南.md`——新业务怎么在这个基座上长出来(新业务域/新角色/新页面) - `docs/装修体系.md`——页面装修(DIY)的开发与行为约定:方案模型、契约同步纪律、新增组件步骤、预览协议、发版链路 - `docs/能力接口清单.md`——已接好的外部能力与接口方一览 - `docs/白标出包链路.md`——多租户小程序一键上传的原理与操作 - `docs/部署环境说明(宝塔Linux).md`——宝塔面板生产部署全流程(含验证清单与踩坑记录) - `deploy/README.md`——Docker Compose 部署(备选范式) - `deploy/oem/README.md`——OEM 通用包与出包前置(一次性) ## 项目规则(AI 辅助开发) `CLAUDE.md` 是 **Claude Code 的项目规则文件**,由 Claude Code 每次会话自动加载并强制遵守,内容为本基座的 项目定位、协作约定、不可突破的工程红线(多租户隔离、敏感开关后端落地、金额到分精度、审计留痕、私有文件 访问、幂等防重等 P0 约束)、文件编码与部署发版约定。 **使用其他 AI 编码工具时**,建议把 `CLAUDE.md` 中的规则整理规范到该工具对应的项目规则文件里, 以获得同等约束效果——例如 Cursor 的 `.cursor/rules/*.mdc`、Windsurf 的 `.windsurfrules`、 Cline 的 `.clinerules`、或多工具通用的 `AGENTS.md`。规则中的工程红线部分是本基座的安全与一致性 底线(尤其多租户隔离与鉴权失效口径),二次开发时无论用何工具都建议原样沿用。 ## 边界 - 框架内置角色只有**超管 + 租户管理员**两类;下游业务角色(业务员/会员/终端用户等)由新业务按起步指南自建。 - 不输出 UI 设计语言:两端页面是功能参考实现,视觉皮肤自行替换;mobile 仅 demo。 - 交互设计基线由新项目按自身受众定义,框架不预设行业向规范。 ## 交流 使用中遇到问题、想反馈需求,或想加入交流群,欢迎扫码加我微信: 微信二维码 ## 许可证 本项目以 [MIT](LICENSE) 许可证开源,可自由商用与二次开发。 后端基础框架源自 [go-admin](https://github.com/go-admin-team/go-admin)(MIT),其许可证声明保留于 `server/LICENSE.md`。 ## 安全提示 - `server/config/settings.yml` 含数据库密码与 JWT 密钥,已在 `.gitignore` 中排除,**切勿入库**;部署时从 `settings.example.yml` 复制生成,`jwt.secret` 每个实例独立生成(`openssl rand -hex 32`)。 - 迁移种子的初始超管口令 `admin / admin@123456` 仅为首次登录用,首登强制改密;生产环境务必完成改密并按《部署环境说明》关闭 3306/6379 的公网暴露。