メインコンテンツにスキップ

サーバーインストール

要件

オペレーティングシステム

Windows、Linux、macOSを含むすべての主要なオペレーティングシステムがサポートされています。

環境

情報

Casdoorフロントエンドの実行とビルドには、Yarn 1.xの使用を強くお勧めします。 NPMを使用するとUIスタイリングの問題が発生する可能性があります。 詳細については、casdoor#294を参照してください。

注意

Goの依存パッケージを直接同期できない場合は、GOPROXY環境変数を設定してGoプロキシを使用する必要があります。 https://goproxy.cn/の使用を強くお勧めします。

データベース

CasdoorはXORMを使用してデータベースと通信します。 Xorm Drivers Supportに基づき、Casdoorは現在以下のデータベースをサポートしています:

  • MySQL
  • MariaDB
  • PostgreSQL
  • CockroachDB
  • SQL Server
  • Oracle
  • SQLite 3
  • TiDB

ダウンロード

CasdoorのソースコードはGitHubにホストされています:https://github.com/casdoor/casdoor。 GoバックエンドコードとReactフロントエンドコードの両方が単一のリポジトリに含まれています。

名前説明言語ソースコード
フロントエンドCasdoorのためのWebフロントエンドUIJavaScript + Reacthttps://github.com/casdoor/casdoor/tree/master/web
バックエンドCasdoorのためのRESTful APIバックエンドGolang + Beego + XORMhttps://github.com/casdoor/casdoor

CasdoorはGo Modulesをサポートしています。 コードをダウンロードするには、gitを使用してコードをクローンします:

cd path/to/folder
git clone https://github.com/casdoor/casdoor

設定

データベースの設定

CasdoorはMySQL、MSSQL、SQLite3、PostgreSQLをサポートしています。 デフォルトでは、CasdoorはMySQLを使用します。

MySQL

Casdoorはユーザー、ノード、トピック情報をcasdoorという名前のMySQLデータベースに保存します。 データベースが存在しない場合は、手動で作成する必要があります。 DB接続文字列は、https://github.com/casdoor/casdoor/blob/master/conf/app.confで指定できます。

driverName = mysql
dataSourceName = root:123456@tcp(localhost:3306)/
dbName = casdoor

PostgreSQL

Casdoorを実行する前に、PostgreSQL用のデータベースを手動で準備する必要があります。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はバックエンドアプリケーションがリッスンしているポートです。
  • runmodedevまたはprodに設定できます。
  • SessionOnはセッションを有効にするかどうかを決定し、デフォルトでは有効になっています。
  • driverNamedataSourceNamedbNameは以前に紹介されました。 詳細については、データベースの設定を参照してください。
  • verificationCodeTimeoutは検証コードの有効期限を設定します。 有効期限が切れた後、ユーザーは再度取得する必要があります。

初心者の場合は、データベースに基づいてdriverNamedataSourceNameの2つの項目のみを変更する必要があります。 このデータベースはCasdoorによって使用され、ユーザー、組織、アプリケーションを含むすべてのデータを保存します。

  • tableNamePrefixはアダプターを使用する際のテーブルのプレフィックスです。
  • showSqlはログレベルがINFOより大きい場合にSQLステートメントをロガーに表示するかどうかを決定します。
  • redisEndpointはBeegoセッションストレージに使用されるRedisエンドポイントです。 このパラメータが空の場合、セッションデータは./tmpフォルダにファイルとしてローカルに保存されます。 BeegoセッションストレージとしてRedisを使用するには、値は次のようになります: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はオリジンバックエンドドメイン名です。
  • staticBaseUrlは、システムがデータベースを初期化するときに使用される静的画像のアドレスです。
  • enableGzipは、リクエストヘッダーにAccept-Encoding=gzipが含まれている場合、gzipエンコーディングを受け入れて応答します。

環境変数経由

上記のiniファイルでCasdoorによって定義されたすべての設定項目は、環境変数を介して設定できます。また、beegoの設定項目の一部(httpport、appname)も設定できます。

例えば、Casdoorを起動しようとするときに、環境変数を介して設定を渡すために次のようなものを使用できます:

appname=casbin go run main.go

さらに、export派生も可能な方法です。 環境変数の名前は、iniファイルで使用したい名前と完全に一致する必要があります。

注:環境変数の設定は、iniファイルの設定を上書きすることができます。

実行

現在、2つの方法で開始でき、状況に応じて1つを選択できます。

開発モード

バックエンド

CasdoorのGoバックエンドはデフォルトでポート8000で実行されます。 次のコマンドでGoバックエンドを起動できます:

go run main.go

サーバーが正常に実行された後、フロントエンド部分を開始できます。

フロントエンド

Casdoorのフロントエンドは非常にクラシックなCreate-React-App (CRA)プロジェクトです。 デフォルトではポート7001で実行されます。 フロントエンドを実行するには、次のコマンドを使用します:

cd web
yarn install
yarn start

ブラウザでhttp://localhost:7001を訪問してください。 デフォルトのグローバル管理者アカウントでCasdoorダッシュボードにログインしてください:built-in/admin

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にアクセスしてください。 デフォルトのグローバル管理者アカウントでCasdoorダッシュボードにログインしてください:built-in/admin

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をテストするとき、serverUrlhttp://localhost:7001に設定するので、Casdoorを使用してサインインやサインアップの機能をテストすると、localhost 7001(Casdoorのポート)に行きます。

そして、Casnodeをprod環境に配置するとき、serverUrlhttps://door.casdoor.comに設定するので、ユーザーはCasdoorを使用してサインインまたはサインアップできます。

Casnodeの例