You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
veypi ced7cc6a07 update perm 1 week ago
..
README.md update perm 1 week ago
api.md update doc 1 week ago
architecture.md update perm 1 week ago
integration.md update perm 1 week ago
permission.md update perm 1 week ago
tsdb.md tsdb curl doc 2 years ago

README.md

VBase 文档

欢迎来到 VBase 文档中心。

快速导航

文档 说明
API 文档 完整的 API 接口文档,包含请求/响应格式
架构设计 系统架构、模块设计、数据模型、BaaS 资源管理
部署指南 环境配置、Docker 部署、运维指南
权限系统 RBAC+ABAC 权限模型、三级权限体系使用指南

项目定位:可私有化部署的 IAM + BaaS 产品

VBase 是一个 产品化的 IAM + BaaS 平台,你可以将其售卖/部署给终端客户:

三层级架构

层级 角色 说明
平台层 平台运营商(你) 管理 VBase 产品,提供部署和运维服务
实例层 客户2C/2B/混合) 独立部署 VBase 实例,完全隔离
业务层 终端用户 使用客户的产品,与你无直接关系

两种交付模式

  1. 托管部署:你在自己的云基础设施上为客户部署 VBase 实例,负责运维
  2. 客户自托管:客户在自己的环境中部署,数据完全自主可控

客户类型

  • 2C 产品公司(社交 App、电商平台用 VBase 管理用户注册、登录、个人数据
  • 2B 产品公司SaaS、企业软件用 VBase 做多租户隔离、组织架构、权限管理
  • 混合产品公司电商平台、O2O同时管理 C 端用户和 B 端企业

核心特性

  • 项目-资源隔离: 多项目数据隔离,支持个人/团队场景
  • 三级权限体系: 平台级 → 项目级 → 资源级
  • RBAC + ABAC: 角色与策略结合的细粒度权限控制
  • Redis 缓存: 权限缓存 1 分钟 TTL平衡性能与实时性
  • 资源级权限: 数据库、存储、函数、API 密钥的细粒度控制

快速开始

1. 启动服务

# 使用 Docker Compose
docker-compose up -d

# 或使用源码
go run ./cli/main.go

2. 获取初始管理员密码

查看日志获取自动生成的管理员密码:

docker logs vbase_app_1 | grep -A 5 "Initial admin"

3. 调用 API

# 登录
curl -X POST http://localhost:8080/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"your-password"}'

# 访问用户列表
curl http://localhost:8080/users \
  -H "Authorization: Bearer your-access-token"

配置 OAuth 登录

Google 登录

  1. 访问 Google Cloud Console
  2. 创建 OAuth 2.0 客户端
  3. 配置环境变量:
OAUTH_GOOGLE_ENABLED=true
OAUTH_GOOGLE_CLIENT_ID=your-client-id
OAUTH_GOOGLE_CLIENT_SECRET=your-client-secret

GitHub 登录

  1. 访问 GitHub Settings
  2. 创建 OAuth App
  3. 配置环境变量:
OAUTH_GITHUB_ENABLED=true
OAUTH_GITHUB_CLIENT_ID=your-client-id
OAUTH_GITHUB_CLIENT_SECRET=your-client-secret

常见问题

Q: 首次启动时管理员密码是什么?

A: 如果未设置 INIT_ADMIN_PASSWORD,系统会自动生成随机密码并打印在日志中。

Q: 如何重置管理员密码?

A: 直接修改数据库中的 users 表,使用 bcrypt 生成新密码哈希。

Q: 支持哪些数据库?

A: 支持 MySQL 5.7+、PostgreSQL 12+、SQLite 3。

Q: 如何实现单点登录(SSO)

A: VBase 可以作为 OAuth2.0/OIDC 服务端,其他应用配置为 OAuth 客户端即可实现 SSO。

贡献指南

欢迎提交 Issue 和 PR。

许可证

MIT License