服务器安装
安装要求
操作系统
所有主要的操作系统,包括Windows,Linux和macOS,都得到支持。
环境
我们强烈建议使用 Yarn 1.x 来运行和构建Casdoor前端。 使用NPM可能会导致界面样式问题。 欲了解更多详情,请见: casdoor#294。
如果您的网络无法直接同步Go依赖包,您需要配置GOPROXY环境变量。 我们强烈建议使用: https://goproxy.cn/
数据库
Casdoor使用 XORM 与数据库进行交互。 基于 Xorm Drivers, 当前支持的数据库包括:
MySQL
MariaDB
PostgreSQL
CockroachDB
SQL Server
Oracle
SQLite 3
TiDB
下载
Casdoor 的源代码托管在 GitHub: https://github.com/casdoor/casdoor。 转到后端代码和 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
配置
配置数据库
Casdoor 支持MySQL、MSSQL、SQLite3和PostgreSQL。 默认情况下,Casto使用MySQL。
MySQL
Casdoor将会把users,nodes和topics信息存储在一个名为casdoor
的MySQL数据库中。 如果数据库不存在,则需手动创建。 可以在以下位置指定数据库连接字符串 https://github.com/casdoor/blob/master/conf/app.conf
driverName = mysql
dataSourceName = root:123456@tcp(localhost:3306)/
dbName = casdoor
PostgreSQL
在运行 Cassdoor 之前,您需要手动准备PostgreSQL 数据库,因为Castor 需要在使用 xorm 打开 Postgres 时指定一个数据库。
假设你已经准备好了一个名为casdoor
的数据库,你应该像这样指定app.conf
:
driverName = postgres
dataSourceName = "user=postgres password=postgres host=localhost port=5432 sslmode=disable dbname=casdoor"
dbName = casdoor
dataSourceName
有一个非空的dbName
,并且也在上面的示例中为dbname
字段复制数据库名称。 :::CockroachDB
CockroachDB也可以与PostgreSQL驱动程序一起使用,并且配置与PostgreSQL相同。
driverName = postgres
dataSourceName = "user=postgres password=postgres host=localhost port=5432 sslmode=disable dbname=casdoor serial_normalization=virtual_sequence"
dbName = casdoor
SQLite3
要配置SQLite3,您应该像这样指定app.conf
:
driverName = sqlite
dataSourceName = "file:casdoor.db?cache=shared"
dbName = casdoor
通过 Ini 文件配置
Casdoor可以通过单个文件进行配置:conf/app.conf,该文件默认包含以下内容:
appname = casdoor
httpport = 8000
runmode = dev
SessionOn = true
copyrequestbody = true
driverName = mysql
dataSourceName = root:123456@tcp(localhost:3306)/
dbName = casdoor
tableNamePrefix =
showSql = false
redisEndpoint =
defaultStorageProvider =
isCloudIntranet = false
authState = "casdoor"
socks5Proxy = "127.0.0.1:10808"
verificationCodeTimeout = 10
initScore = 2000
logPostOnly = true
origin = "https://door.casdoor.com"
staticBaseUrl = "https://cdn.casbin.org"
enableGzip = true
appname
是应用程序名称,目前没有实际用途。httpport
是您的后端应用程序正在监听的端口。runmode
可以设置为dev
或prod
。SessionOn
决定是否启用会话,默认情况下是启用的。driverName
、dataSourceName
和dbName
已在前面介绍过。 请参阅配置数据库以获取详细信息。verificationCodeTimeout
设置了验证码的过期时间。 过期后,用户需要再次获取。
作为初学者,你只需要修改两项:driverName
和 dataSourceName
,根据你的数据库进行修改。 这个数据库将被Casdoor用来存储所有数据,包括用户、组织和应用程序。
tableNamePrefix
是使用适配器时表的前缀。showSql
决定了如果日志级别大于INFO,是否在日志器上显示SQL语句。redisEndpoint
后填写Redis地址,被Beego用于session存储 如果此参数为空,会话数据将作为文件在./tmp
文件夹中本地存储。 要使用Redis作为Beego会话存储,值应该是类似于:redis.example.com:6379
。 如果Redis是在本地部署的,你可以使用localhost:6379
。 如果启用了Redis密码,请使用redis.example.com:6379,db,password
。 在以下链接查看更多详情:https://github.com/beego/beedoc/blob/master/en-US/module/session.md#saving-provider-config。defaultStorageProvider
是默认的文件存储服务名称。 如果您需要使用文件存储服务,例如头像上传
, 您需要设置存储提供商,并在您的应用
中应用它。 详情请参阅 存储isCloudIntranet
用于识别您的提供者端点是否为内网端点。authstate
是授权应用程序名称。 登录时将检查该参数。socks5Proxy
是 SOCKS 代理服务器 IP 地址。 设置代理端口,因为我们有与Google相关的服务,或者使用Google
、GitHub
、Facebook
、LinkedIn
或Steam
作为OAuth提供商,这在某些地区可能会受到网络限制。initscore
是每个用户的最初分数。 每个用户都有一个得分属性。 分数由Casnode使用,并且在Casdoor中不控制任何东西。logPostOnly
用于确定是否仅使用post方法来添加记录。origin
是origin形式的后端域名staticBaseUrl
是系统初始化数据库时使用的静态图像的地址。- `
enableGzip
会在请求头包含Accept-Encoding=gzip
时接受并以gzip编码进行响应。
通过环境变量配置
Casdoor在上述ini文件中定义的所有配置项都可以通过环境变量进行配置,以及一些beego配置项(如httpport,appname)。
例如,当你尝试启动Casdoor时,你可以使用类似这样的方式通过环境变量传递配置:
appname=casbin go run main.go
此外,export
衍生品也是一种可能的方法。 环境变量的名称应与您想在ini文件中使用的名称完全匹配。
注意:环境变量中的配置可以覆盖ini文件中的配置。
运行
目前有两种启动方法,您可以根据自己的情况选择一种。
开发模式
后端
Casdoor的Go后端默认在8000端口运行。 您可以使用以下命令启动Go后端:
go run main.go
服务器成功运行后,您可以开始进行前端部分。
前端
Casdoor的前端是一个非常经典的Create-React-App (CRA)项目。 它默认在端口7001
上运行。 使用以下命令来运行前端:
cd web
yarn install
yarn start
在您的浏览器中访问 http://localhost:7001。 使用默认的全局管理员账户:built-in/admin
登录Casdoor控制面板。
admin
123
生产模式
后端
将Casdoor Go后端代码编译成可执行文件并启动它。
对于Linux:
go build
./casdoor
适用于Windows:
go build
casdoor.exe
前端
将Casdoor前端代码构建成静态资源(.html,.js,.css文件):
cd web
yarn install
yarn build
在您的浏览器中访问 http://localhost:8000。 使用默认的全局管理员账户:built-in/admin
登录Casdoor控制面板。
admin
123
要使用另一个端口,请编辑conf/app.conf
并修改httpport
,然后重新启动Go后端。
在dev环境中,前端由yarn run
在7001端口运行,所以如果你想要进入Casdoor登录页面,你需要将Casdoor链接设置为http://localhost:7001。
在prod环境中,前端文件首先由yarn build
构建,并在8000端口上提供服务,因此,如果你想要进入Casdoor登录页面,你需要将Casdoor链接设置为https://your-casdoor-url.com:8000(如果你正在使用反向代理,你需要将链接设置为你的域名)。
以我们的官方论坛Casnode为例
Casnode使用Casdoor处理身份验证。
当我们在dev环境中测试Casnode时,我们将serverUrl
设置为http://localhost:7001,所以当我们使用Casdoor测试登录和注册功能时,它将会跳转到localhost 7001,这是Casdoor的端口。
当我们把Casnode放入生产环境时,我们将serverUrl
设置为https://door.casdoor.com,所以用户可以使用Casdoor登录或注册。