多租户SaaS平台

GCLOUD是一个不断增长的多租户SaaS平台,旨在托管多个租户、分支和部署阶段,采用现代云基础设施和AI工具构建。

  • by SamPrimeaux
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 SamPrimeaux/GCLOUD

使用说明

GCLOUD-多租户SaaS Monrepo

现场演示: https://samprimeaux.github.io/GCLOUD/

GCLOUD是一个不断增长的 monorepo SaaS平台 设计用于承载多个租户、分支和部署阶段。采用现代云基础设施和人工智能工具构建。

已连接的存储库来自 SamPrimeux/GCLOUD

安装说明

1.环境变量

复制 .env.example 到 .env 并填写你的秘密:

cp .env.example .env

2.必要的秘密

Cloudflare配置

对于Claude代码环境:

  • 在Claude Code项目设置中将这些设置为环境变量
  • 不要 使用 WRANGLER_SECRET_TOKEN -使用 CLOUDFLARE_API_TOKEN 相反
变量 描述 查找位置
CLOUDFLARE_API_TOKEN 具有Workers编辑权限的API令牌 Cloudflare 控制面板→ 个人资料→ API令牌
CF_ACCOUNT_ID 您的Cloudflare帐户ID Cloudflare 控制面板→ 工人和页面 (在URL或侧边栏中)

创建Cloudflare API令牌:

  1. 首选https://dash.cloudflare.com/profile/api-tokens
  2. 点击“创建令牌”
  3. 使用“编辑Cloudflare Workers”模板
  4. 所需权限:
    • 账户→ 工人脚本→ Edit
    • 账户→ 账户设置→ Read
  5. 立即复制令牌(仅显示一次)

Supabase配置

变量 描述
SUPABASE_URL 您的Supabase项目URL(例如。, https://xxxx.supabase.co)
SUPABASE_SERVICE_ROLE_KEY Supabase项目设置中的服务角色键

其他秘密

变量 描述
INTERNAL_SYNC_TOKEN 用于内部API身份验证的任何安全随机字符串
MEAUXBILITY_GH_DASHBOARD 用于仪表板集成的GitHub个人访问令牌
GCLOUD_GH_TOKEN 用于AI模型访问的GitHub Models API令牌(GPT-4等)

3.GitHub Secrets配置

对于GitHub Actions工作流,请将以下机密添加到您的存储库中:

设置→ 秘密和变量→ 行动→ 新存储库密钥

  • CLOUDFLARE_API_TOKEN
  • CF_ACCOUNT_ID
  • SUPABASE_URL
  • SUPABASE_SERVICE_ROLE_KEY
  • INTERNAL_SYNC_TOKEN

4.部署

该存储库包括一个GitHub Actions工作流:

  1. ci-cd.yml -对PR进行检查,并在上部署GitHub Pages+Cloudflare Worker main

Live网站

查看已部署的仪表板: https://samprimeaux.github.io/GCLOUD/

技术栈

基础设施

  • Cloudflare CI/CD:持续集成和部署管道
  • Cloudflare R2 的:多租户资产的对象存储
  • Cloudflare员工:边缘计算实现全球性能
  • GitHub页面:开发部署

人工智能与自动化

  • GitHub模型:免费访问GPT-4、GPT-4o、Llama 3.1和更多AI模型
  • Google Gemini API:先进的人工智能能力
  • 克劳德·艾:自然语言处理和代码辅助
  • 光标:AI驱动的开发环境
  • 云转换:文件转换和处理
  • 内部MCP:模型上下文协议集成

特性

  • 多租户架构:支持多个客户/分支机构
  • 剧务:开发、暂存和生产环境
  • 聊天板:实时协作
  • Supabase:数据库和身份验证
  • GitHub操作:自动化工作流程

前端

  • Tailwind CSS:实用性优先的造型
  • Three.js:3D图形和可视化
  • 响应式设计:移动优先方法

发展

打开 index.html 在浏览器中本地查看或使用本地服务器:

python3 -m http.server 8000
# or
npx serve .

然后访问 http://localhost:8000