Skip to main content

安装教程

安装要求

caution

我们强烈建议您使用 Yarn 来安装Casdoor。 使用 npm 可能会导致widgets位置错误,详情请查看 casdoor#294

安装

安装 Casdoor 非常简单,你可以使用go get来安装

go get github.com/casbin/casdoor

或者使用git clone

git clone https://github.com/casbin/casdoor

配置

所有的配置文件都在 /conf 目录中,包括 app.confoss.conf。 前者存储应用相关的信息,而后者仅存储 OSS 相关的配置。 所有的设置都可以通过修改这两个文件来进行。

在第一次使用的时候,你不需要搞清楚所有配置选项,这些东西将在后面介绍。 现在你只需要配置几个简单的选项来在自己的电脑上运行 casdoor。

数据库信息应该最先被配置。 Casdoor 使用XORM 框架来连接数据库,因此,所有XORM支持的数据库都可以使用。

  • 设置数据库 (MySQL):

    Casdoor 把用户、节点还有主题信息保存在MySQL数据库的casdoor库中,如果这个数据库不存在就会自动创建一个。 数据库连接字符串可以在 https://github.com/casbin/casdoor/blob/master/conf/app.conf 指定。

    driverName = mysql
    dataSourceName = root:123456@tcp(localhost:3306)/
    dbName = casdoor
  • 设置数据库 (Postgres):

    由于在使用xorm打开 Postgres 时必须选中一个数据库,所以你应该在启动 Casdoor 前手动准备好数据库。

    假设你已经创建了一个叫做 casdoor 的数据库,然后你应该把 app.conf 修改为这样:

    driverName = postgres
    dataSourceName = "user=postgres password=xxx sslmode=disable dbname="
    dbName = casdoor

    注意: 你可以通过 dataSourceName 添加 Postgres 参数,但是请确保 dataSourceNamedbname= 结尾。 否则数据库适配器可能在你启动 Casdoor 的时候崩溃。

  • 其它数据库...

运行

当前有两种方法可以启动,您可以根据自己的情况选择一个。

手动安装

根据实际需要,它被分为 dev 模式和 prod 模式

开发环境

当你完成了上述简单的设置步骤后,你可以启动 Casdoor。 Casdoor 是前后端分离的架构。 前端使用了 javascript 和 React,后端使用了beego 和 xorm。

后端

您可以使用此命令启动后端服务器。

go run main.go

在服务器在特定端口上运行成功后,我们可以启动前端部分。

前端

Casdoor 使用 npm 和 yarn 作为包管理器,你可以使用其中任意一个。 打开一个新的终端并且输入:

yarn install
yarn run start

打开您最喜欢的浏览器并访问 http://localhost:7001,您将看到Cassdoor的登录页面。 输入 admin123 测试登录功能正常工作。

生产环境

前端

构建静态页面:

yarn run build
后端

我们构建了这个项目,并且将会有一个可执行的文件 casdoor,然后我们开启服务:

go build && ./casdoor

干得好,下次在你喜欢的浏览器访问 http://SERVER_IP:8000 ,如果你可以看到Cassdoor的登录页面,您可以使用 admin123 作为用户和密码登录,这意味着一切都没问题!

:::建议 要自定义端口,请编辑 conf/app.conf 文件来设置另一个端口。 :::

:::信息 casdoor 端口详细信息

dev 环境中,前端由 npm run 在端口7001运行,如果您想去Casdoor登录页面, 您需要设置Casdoor 链接为 http://localhost:7001

生产 环境中,前端文件首先由 npm build 构建并服务于端口 8000, 如果您想要转到Casdoor登录页面, 您需要设置 Casdoor 链接为 http://SERVER_IP:8000 (如果您正在使用逆向代理,您需要将链接设置为 您的域)

以我们的官方论坛 Casnode 作为示例:

Casnode 使用 Casdoor 来处理身份验证。

当我们在 dev 环境中测试Casnode 时,我们将 serverUrl 设置为 http://localhost:7001。 所以当我们使用 Casdoor 测试登录和注册功能时,它将会转到localhost 7001,作为Casdoor的端口。

当我们将Casnode 放到 生产 环境时,我们将 serverUrl 设置为 https://door.casbin.com,用户可以使用Casdoor登录或注册。

Casnode 示例 :::

Docker

  • 安装 DockerDocker-compose, 参考 dockerdocker-compose

  • 编辑 conf/app.conf

  • datasSourceName = root:123@tcp(localhost:3306)/dataSourceName = root:123@tcp(db:3306)/

  • 运行以下命令

    docker-compose up
  • 打开浏览器

    http://localhost:8000/ :::tip

    • MySQLCasdoor 服务器 位于不同的docker容器中。
    • 修改 conf/app.conf后,重新执行 docker-compose up

    :::

详细信息

  • Github 角标

    我们在右上角添加了Github的角标,可以链接到你的Github仓库地址。 你可以通过设置 ShowGithubCorner 来隐藏它。

    设置:

    export const ShowGithubCorner = true

    export const GithubRepo = "https://github.com/casbin/casdoor" //your github repository
  • OSS 设置

    我们使用 OSS 来存储和显示用户的头像。 你必须修改文件 conf/oss.conf 来告诉后端 OSS 的信息。 我们支持阿里云([aliyun]) 和亚马逊S3([s3]) 作为 OSS 提供商。

    [provider]
    accessId = id
    accessKey = key
    bucket = bucket
    endpoint = endpoint

    请正确填写这个配置文件,否则头像服务没有办法正常工作!

  • 应用设置

    conf/app.conf 存储的是 casdoor 的重要设置,有助于你更好的使用 Casdoor 。

    appname = casdoor
    httpport = 8000
    runmode = dev
    SessionOn = true
    copyrequestbody = true
    driverName = mysql
    dataSourceName = root:123@tcp(localhost:3306)/
    dbName = casdoor
    authState = "casdoor"
    useProxy = false
    verificationCodeTimeout = 10
    • appname 是应用的名称,目前来说并没有实际用途。
    • httpport 是后端应用监听的端口。
    • runmode 用于选择 开发环境 或者 生产环境
    • SessionOn 控制是否启用会话,默认为使用。
    • driverName, dataSourceName 以及 dbName 前面已经介绍过,请参考配置
    • useProxy 设置代理端口,因为我们使用了在某些地区由于网络不可用的谷歌相关的服务。
    • verificationCodeTimeout 设置验证码超时时间。 超时之后用户需要再次获取验证码。
  • 如果需要被公开访问(拥有公共IP),也需要修改 web/src/auth/Auth.js

    export let authConfig = {
    serverUrl: "http://example.com", // your Casdoor URL, like the official one: https://door.casbin.com, or http:1.1.1.1:8000
    ...
    }