前言
Casdoor是一个基于OAuth 2.0、OIDC、SAML 和 CAS 的,UI-first的身份和访问管理(IAM)/单点登录(SSO)平台。使用 Go 和react开发,前后端分离,内置第三方应用登录服务。
Casdoor 有四个核心概念,分别是 组织(Organization)
,用户(User)
,应用(Application)
和 提供商(Provider)
。组织承载用户和应用,一个用户只能隶属于一个组织,但可以登录到自己组织的多个应用中;而提供商则代表了某种身份验证方式,例如电子邮件验证、短信验证、OAuth 验证等。
部署 Casdoor
安装要求
操作系统
支持所有主流的操作系统,包括Windows、Linux和macOS。
环境
- Go 1.17+
- Node.js LTS (16或14)
- Yarn 1.x
强烈建议您使用 Yarn 1.x 运行 Casdoor 前端,使用 NPM可能会导致UI 风格问题。
注意:对于中国大陆用户,为了成功下载依赖关系包, 您需要通过配置 GOPROXY 环境变量来使用Go 代理。 We strongly recommend: https://goproxy.cn/
数据库
Casdoor使用 XORM 与数据库进行交互。 基于 Xorm Drivers Support, 当前支持的数据库包括:
- MySQL
- MariaDB
- PostgreSQL
- CockroachDB
- SQL Server
- Oracle
- SQLite 3
- TiDB
下载
The source code of Casdoor is hosted at GitHub: https://github.com/casdoor/casdoor. Go 后端代码和 React 前端代码都在单个仓库中。
名称 | 描述 | 语言 | 源代码 |
---|---|---|---|
前端 | Casdoor的网页前端界面 | JavaScript + React | https://github.com/casdoor/casdoor/tree/master/web |
后端 | Casdoor的ResTful API 后端 | Golang + Beego + XORM | https://github.com/casdoor/casdoor |
Casdoor支持 Go Modules。 要下载代码,您直接通过git克隆仓库就可以了:
cd /文件夹路径/
git clone https://github.com/casdoor/casdoor
克隆仓库过后,前端页面就在web文件夹里。
配置
配置数据库
Casdoor支持MySQL, msSQL,Sqlite3,PostgreSQL等数据库。 默认使用MySQL。 如果您想使用支持以外的数据库,请自行修改object/adapter包
- MySQL
Casdoor将会把users,nodes和topics信息存储在一个命名为casdoor的MySQL数据库中。 如果数据库不存在,则需手动创建。 The DB connection string can be specified at: https://github.com/casdoor/casdoor/blob/master/conf/app.conf
前往 ./conf/app.conf 配置数据库信息,例如对于 MySQL,使用如下的配置文件:
此文件也包含许多其他个性化配置,有需要的可根据官方文档修改。driverName = mysql dataSourceName = root:123456@tcp(localhost:3306)/ dbName = casdoor
编译运行casdoor
首先确保你的电脑下载了yarn,下载教程参见官方文档:https://classic.yarnpkg.com/en/docs/install#windows-stable
简单来说就是:
npm install yarn -g
- 若想将 Casdoor 运行在开发模式下,则分别输入以下指令以编译并运行 Casdoor 的前端和后端服务:
cd web
yarn install
yarn start
go run main.go
接下来,即可在 http://localhost:7001/ 访问 Casdoor(默认的管理员用户名和密码为 admin 和 123)。
- 若想将 Casdoor 运行在生产模式下,则首先输入以下指令编译前端文件:
cd web
yarn install
yarn build
然后,编译并运行 Casdoor 的后端程序:
go build
./casdoor
接下来,即可在 http://localhost:8000/ 访问 Casdoor(默认的管理员用户名和密码为 admin 和 123)。
ps:如果npm和yarn下载包异常可以参见这篇文章:npm和yarn换成淘宝源仍报错npm ERR! code ETIMEDOUT和info There appears to be trouble with your network…
成果
至此,casdoor项目部署成功。
参考官方文档:https://casdoor.org/zh/docs/overview