Встановлення сервера
Вимоги
Операційна система
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:
MySQLMariaDBPostgreSQLCockroachDBSQL ServerOracleSQLite 3TiDB
Завантажити
Вихідний код Casdoor розміщений на GitHub: https://github.com/casdoor/casdoor. Код бекенду Go та код фронтенду React містяться в одному репозиторії.
| Ім'я | Опис | Мова | Вихідний код |
|---|---|---|---|
| Фронтенд | Веб-фронтенд UI для Casdoor | JavaScript + React | https://github.com/casdoor/casdoor/tree/master/web |
| Бекенд | RESTful API бекенд для Casdoor | 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 зберігає інформацію про користувачів, вузли та теми в базі даних 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
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:
| Parameter | Default Value | Description |
|---|---|---|
appname | casdoor | Application name (currently has no practical use) |
httpport | 8000 | Port that the backend application listens on |
runmode | dev | Running mode: dev or prod |
copyrequestbody | true | Whether to copy request body for later use |
driverName | mysql | Database driver (e.g., mysql, postgres, sqlite). See Configure Database |
dataSourceName | root:123456@tcp(localhost:3306)/ | Database connection string. See Configure Database |
dbName | casdoor | Database name used by Casdoor |
tableNamePrefix | (empty) | Prefix for table names when using an adapter |
showSql | false | Show 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 |
isCloudIntranet | false | Whether 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 |
verificationCodeTimeout | 10 | Verification code expiration time in minutes |
initScore | 0 | Initial score assigned to new users (used by Casnode, not Casdoor) |
logPostOnly | true | Whether to log only POST requests |
isUsernameLowered | false | Whether 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 |
isDemoMode | false | Enable demo mode restrictions |
batchSize | 100 | Batch size for bulk operations |
enableErrorMask | false | Whether to mask detailed error messages |
enableGzip | true | Accept and respond with gzip encoding when client supports it |
inactiveTimeoutMinutes | (empty) | Auto-logout timeout in minutes. Empty or ≤0 means no timeout |
ldapServerPort | 389 | Port for LDAP server |
ldapsCertId | "" | Certificate ID for LDAPS connections |
ldapsServerPort | 636 | Port for LDAPS (LDAP over SSL) server |
radiusServerPort | 1812 | Port 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) |
initDataNewOnly | false | Whether 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 бекенд.
У середовищі 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.
