Demos

CommonServices — 一套后端,服务所有应用

🛠️ CommonServices — 一套后端,服务所有应用

别再为每个项目重复造轮子。部署一次,所有应用共享用户体系、授权管理和运维能力。

快速开始 · English


你一定遇到过这样的问题

每次启动新项目,你都要写一遍用户注册、密码重置、JWT 鉴权、角色权限。然后是文件上传、邮件通知、License 激活码管理。每个项目各有一套数据库、一套认证模块、一套管理后台。

你花在基础设施上的时间,远远超过了打磨产品本身的时间。

解决方案

CommonServices 是一个私有部署的通用后端平台,把每个应用都需要的基础能力 — 用户认证、软件授权、反馈收集、文件存储、消息通知、版本升级 — 整合到一套统一的 API 中。你只需要部署一次,注册你的应用,就能立即获得生产级的后端能力,不用再写一行重复代码。


核心价值

你获得的能力 实现方式
一套用户体系,所有应用共用 用户注册一次,即可访问你开发的任何应用。内置 GitHub 和微信 OAuth 登录。
软件授权管理,无需第三方服务 生成激活码、绑定设备、设置试用期、追踪使用情况 — 全部在自己的服务器上完成。
多渠道反馈统一管理 从 GitHub Issues、Gitee、微信公众号拉取反馈,汇总到一个收件箱,支持自动回复和 AI 去重。
版本升级灰度发布 发布新版本、设置灰度比例,客户端自动检查更新 — 无需自建升级服务器。
按应用隔离的存储和数据库 每个应用拥有独立的文件存储和数据库,配额可控,自动创建。
完整审计日志 每一次操作都有记录 — 谁、做了什么、什么时候、从哪里,按月分区存储,查询高效。

核心功能

1. 统一认证与用户管理

一套登录系统覆盖所有应用。支持邮箱密码注册和 GitHub、微信 OAuth 登录。JWT 会话管理、Argon2 密码加密、个人访问令牌(PAT)带作用域权限控制、可配置的刷新令牌过期时间 — 全部开箱即用。

2. 软件授权与激活管理

为你的应用提供完整的授权引擎。定义定价方案、批量生成激活码、将 License 绑定到具体设备、设置试用期(支持离线宽限期),从管理后台或命令行工具管理完整的授权生命周期 — 试用、激活、暂停、吊销。

3. 多渠道反馈收集

连接 GitHub Issues、Gitee 或微信公众号作为反馈渠道。所有反馈汇入统一收件箱,支持分类标注、回复、自动回复规则(关键词、正则、AI 匹配),以及 AI 智能去重聚合。

4. 版本升级与发布管理

创建发布版本,附带版本号、更新日志和多平台安装包(Windows、macOS、Linux、Android、iOS)。通过灰度百分比控制发布节奏,客户端调用一个接口即可检查更新,支持强制升级。

5. 多租户应用管理

为每个应用注册独立的标识、API 凭证、团队成员和角色权限(用户、开发者、管理员)。每个应用拥有隔离的用户配额、数据库配额和文件存储配额,随时可以暂停、恢复或轮换凭证。

6. 管理后台与命令行工具

Vue 3 构建的 Web 管理后台,集成了仪表盘、用户管理、激活码生成、反馈处理、配置编辑和审计日志查看。csctl 命令行工具覆盖同样的操作,适合脚本和自动化场景。


快速开始

  1. 克隆仓库 并将 .env.example 复制为 .env,填写配置
  2. 启动基础设施 — 执行 docker compose up -d postgres caddy 启动 PostgreSQL 和 Caddy
  3. 执行数据库迁移 — 运行 sqlx migrate run 创建所有数据表
  4. 启动 API 服务 — 运行 cargo run -p server,服务将监听 8000 端口
  5. 打开管理后台 — 进入 admin-console 目录,执行 npm install && npm run dev,注册第一个用户并创建应用

获取方式

组件 获取方式 环境要求
API 服务 源码 Rust stable, PostgreSQL 17
管理后台 源码 Node.js 18+
命令行工具 cargo install --path crates/csctl Rust stable
Docker 部署 docker compose up Docker 24+, Docker Compose v2

CommonServices 为私有部署方案。克隆仓库后部署到你自己的服务器上。


隐私与数据


路线图

CommonServices 目前处于 原型 阶段。

已实现的能力:

即将到来:


社区与支持


不想再重复造后端轮子? 立即开始

Demo link coming later

📖 Read in English

← Back to all demos