你可以查看我的项目 IndiePitcher,这是一个使用此模板以 Swift 编写后端的 SAAS 示例。
这是 Vapor 启动器模板的扩展,旨在帮助你快速启动下一个 SAAS 的后端。或者,如果你对服务端 Swift 和 Vapor 感兴趣,并想查看一些实际代码,这也是一个不错的选择。
它为你处理了繁琐的任务,例如用户管理、发送电子邮件、数据分析、错误日志记录...
每个 SAAS 都需要处理用户注册。如果你的服务开始流行,客户会开始询问如何邀请同事。如果所有内容都绑定到用户个人资料而不是组织单元,这将变得非常麻烦。这就是为什么此模板包含完整的组织管理,具有 3 级用户权限。你可以在注册期间创建一个默认组织,其中包含对用户隐藏的用户个人资料,这没有问题,并且你为未来做好了准备。
- 这个仓库将会不断扩展,并与最新的 Swift 和 Vapor 版本保持同步更新。欢迎点赞或订阅更新。
- 我正在制作一个课程,非常详细地讲解所有内容。 加入等候名单。
- 基于 JWT 的用户身份验证,使用 Firebase
- Firebase 提供非常慷慨的免费套餐,每月 50,000 活跃用户
- 你可以轻松地将 Firebase 替换为其他提供商
- 将用户分组到组织中,并设置用户角色
- 类似于你在公司使用的 GitHub 或 Figma 组织
- 使用 PostgreSQL 作为数据库
- 可以替换为 Vapor 的 ORM 框架 Fluent 支持的其他数据库,但我建议坚持使用 PostgreSQL
- 使用 IndiePitcher 发送电子邮件
- 发送自动电子邮件,例如“你已被添加到 RockerAI 组织并成为管理员。”
- 可以替换为 Sendgrid、Resend 或其他解决方案
- 将服务器事件跟踪到 Mixpanel
- 跟踪重要事件(例如新用户注册)从后端跟踪比从前端跟踪更可靠
- Mixpanel 提供慷慨的免费层级,并且是实时的。
- 将错误日志记录到 Sentry
- 自动记录错误和警告
- Sentry 提供慷慨的免费计划,助你入门
- 全部 Docker 化,几乎可以部署在任何地方
- 一切都有测试
- 克隆此仓库,将其用作你项目的构建块
- 你需要一个 PostgreSQL 数据库。
- 克隆后,创建 `.env` 文件并填写以下信息,以便能够针对本地数据库运行应用程序。
-
FIREBASE_PROJECT_ID=your-firebase-project-id
IP_SECRET_API_KEY=your-indiepitcher-api-key
- 这足以在本地运行项目。部署到生产环境时,你需要添加数据库连接密钥,以及可选的 Mixpanel 和 Sentry 凭据。
- 你可以从 `.env.testing` 复制 `FIREBASE_PROJECT_ID` 来试用,但请务必创建你自己的 Firebase 项目。
- `IP_SECRET_API_KEY` 用于发送电子邮件。你可以访问 https://indiepitcher.com 免费创建一个,或者通过将 `IndiePitcherEmailService` 替换为 `MockEmailService` 来禁用发送电子邮件。
- 设置你的本地开发环境,你需要启动一个数据库。一个简单的方法是下载 Docker 并输入以下命令
docker-compose build
docker-compose up db
启动一个本地数据库用于开发
docker-compose up db-test
启动一个本地数据库用于运行初始化测试(这是一个单独的数据库,因此你不会在运行单元测试时擦除你的数据)
docker-compose down
关闭数据库,或者直接关闭 Docker 应用程序
- 现在应该可以在本地运行项目和运行单元测试了
你可以将你的后端部署到任何支持 Docker 的地方。对于许多人来说,一个明显的选择是 AWS,我个人是 Digital Ocean 的 App Platform 的粉丝。
我还鼓励你加入 Vapor Discord 社区。随时在那里私信我。