Перейти до основного вмісту

Встановлення сервера

Вимоги

Операційна система

All major operating systems are supported, including Windows, Linux, and macOS.

Середовище

інформація

We strongly recommend using Yarn 1.x to run and build the Casdoor frontend. Використання NPM може спричинити проблеми зі стилем UI. Для отримання додаткової інформації дивіться: casdoor#294.

обережно

If your network fails to directly sync Go dependency packages successfully, you need to use a Go proxy by configuring the GOPROXY environment variable. Ми настійно рекомендуємо використовувати: https://goproxy.cn/

База даних

Casdoor використовує XORM для спілкування з базою даних. Based on Xorm Drivers Support, Casdoor currently provides support for the following databases:

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

Завантажити

Вихідний код Casdoor розміщений на GitHub: https://github.com/casdoor/casdoor. Код бекенду Go та код фронтенду React містяться в одному репозиторії.

Ім'яОписМоваВихідний код
ФронтендВеб-фронтенд UI для CasdoorJavaScript + Reacthttps://github.com/casdoor/casdoor/tree/master/web
БекендRESTful API бекенд для CasdoorGolang + 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 зберігає інформацію про користувачів, вузли та теми в базі даних MySQL під назвою casdoor. Якщо база даних не існує, її потрібно створити вручну. Рядок підключення до БД можна вказати за адресою: https://github.com/casdoor/casdoor/blob/master/conf/app.conf

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

PostgreSQL

Before running Casdoor, you need to manually prepare a database for PostgreSQL, as Casdoor requires a database to be selected when opening Postgres with xorm.

Припускаючи, що ви вже підготували базу даних під назвою 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 can be configured via a single file: conf/app.conf. As a beginner, you only need to modify driverName and dataSourceName based on your database (see Configure Database). Below is a complete reference of all configuration options:

ParameterDefault ValueDescription
appnamecasdoorApplication name (currently has no practical use)
httpport8000Port that the backend application listens on
runmodedevRunning mode: dev or prod
copyrequestbodytrueWhether to copy request body for later use
driverNamemysqlDatabase driver (e.g., mysql, postgres, sqlite). See Configure Database
dataSourceNameroot:123456@tcp(localhost:3306)/Database connection string. See Configure Database
dbNamecasdoorDatabase name used by Casdoor
tableNamePrefix(empty)Prefix for table names when using an adapter
showSqlfalseShow SQL statements in logger when log level is greater than INFO
redisEndpoint(empty)Redis endpoint for session storage (e.g., localhost:6379). If empty, sessions are stored locally in ./tmp. For password: host:port,db,password
defaultStorageProvider(empty)Default storage provider name for file uploads (e.g., avatars). See storage
isCloudIntranetfalseWhether provider endpoints use intranet addresses
authState"casdoor"Authorization application name checked during login
socks5Proxy"127.0.0.1:10808"SOCKS5 proxy address for OAuth providers (Google, GitHub, etc.) that may be blocked
verificationCodeTimeout10Verification code expiration time in minutes
initScore0Initial score assigned to new users (used by Casnode, not Casdoor)
logPostOnlytrueWhether to log only POST requests
isUsernameLoweredfalseWhether to convert usernames to lowercase
origin(empty)Backend origin URL (e.g., https://door.casdoor.com)
originFrontend(empty)Frontend origin URL if different from backend
staticBaseUrl"https://cdn.casbin.org"CDN URL for static assets used during database initialization
isDemoModefalseEnable demo mode restrictions
batchSize100Batch size for bulk operations
enableErrorMaskfalseWhether to mask detailed error messages
enableGziptrueAccept and respond with gzip encoding when client supports it
inactiveTimeoutMinutes(empty)Auto-logout timeout in minutes. Empty or ≤0 means no timeout
ldapServerPort389Port for LDAP server
ldapsCertId""Certificate ID for LDAPS connections
ldapsServerPort636Port for LDAPS (LDAP over SSL) server
radiusServerPort1812Port for RADIUS server
radiusDefaultOrganization"built-in"Default organization for RADIUS authentication
radiusSecret"secret"Shared secret for RADIUS authentication
quota{"organization": -1, "user": -1, "application": -1, "provider": -1}Resource quotas (-1 means unlimited)
logConfig{"adapter":"file", "filename": "logs/casdoor.log", "maxdays":99999, "perm":"0770"}Logging configuration (adapter, file path, rotation, permissions)
initDataNewOnlyfalseWhether to initialize data only for new installations
initDataFile"./init_data.json"Path to data initialization file. See Data Initialization
frontendBaseDir"../cc_0"Base directory for frontend files (only for development)

Через змінні середовища

Всі конфігураційні елементи, визначені Casdoor в ini файлі, згаданому вище, можуть бути налаштовані через змінні середовища, а також деякі елементи конфігурації beego (httpport, appname).

Наприклад, коли ви намагаєтеся запустити Casdoor, ви можете використовувати щось на зразок цього, щоб передати конфігурацію через змінні середовища:

appname=casbin go run main.go

Крім того, похідні export також є можливим методом. Назви змінних середовища повинні точно відповідати назвам, які ви хочете використовувати в ini файлі.

Примітка: конфігурації в змінних середовища можуть перевизначити конфігурації в ini файлі.

Запуск

Наразі існує два методи запуску, і ви можете вибрати один залежно від вашої ситуації.

Режим розробки

Бекенд

Go бекенд Casdoor за замовчуванням працює на порту 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

Режим виробництва

Бекенд

Зібрати код Go бекенду Casdoor в виконуваний файл та запустити його.

Для 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 для обробки аутентифікації.

Коли ми тестуємо Casnode у середовищі dev, ми встановлюємо serverUrl як http://localhost:7001, тому коли ми тестуємо функціональність входу та реєстрації за допомогою Casdoor, вона переходить на localhost 7001, який є портом Casdoor.

І коли ми розміщуємо Casnode у середовищі prod, ми встановлюємо serverUrl як https://door.casdoor.com, тому користувачі можуть увійти або зареєструватися за допомогою Casdoor.

Приклад Casnode