跳到主内容

服务器安装

安装要求

操作系统

所有主要的操作系统,包括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 + Reacthttps://github.com/casdoor/casdoor/tree/master/web
后端Casdoor的ResTful API 后端Golang + Beego + XORMhttps://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
对于 PostgreSQL,请确保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可以设置为devprod
  • SessionOn决定是否启用会话,默认情况下是启用的。
  • driverNamedataSourceNamedbName已在前面介绍过。 请参阅配置数据库以获取详细信息。
  • verificationCodeTimeout 设置了验证码的过期时间。 过期后,用户需要再次获取。

作为初学者,你只需要修改两项:driverNamedataSourceName,根据你的数据库进行修改。 这个数据库将被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相关的服务,或者使用GoogleGitHubFacebookLinkedInSteam作为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后端。

Casdoor 端口详情

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登录或注册。

Casnode 示例