サーバーインストール
要件
オペレーティングシステム
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フロントエンドUI | 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 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
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
の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関連のサービスを使用するか、Google
、GitHub
、Facebook
、LinkedIn
、Steam
を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バックエンドを再起動してください。
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をprod環境に配置するとき、serverUrl
をhttps://door.casdoor.comに設定するので、ユーザーはCasdoorを使用してサインインまたはサインアップできます。