Перейти к основному содержанию

Установка сервера

Требования

Операционная система

Поддерживаются все основные операционные системы, включая Windows, Linux и macOS.

Окружение

информация

Мы настоятельно рекомендуем использовать Yarn 1.x для запуска и сборки фронтенда Casdoor. Использование NPM может вызвать проблемы со стилем UI. Для более подробной информации смотрите: casdoor#294.

осторожно

Если ваша сеть не может напрямую синхронизировать пакеты зависимостей Go успешно, вам нужно использовать Go прокси, настроив переменную окружения GOPROXY. Мы настоятельно рекомендуем использовать: 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 содержатся в одном репозитории.

ИмяОписаниеЯзыкИсходный код
ФронтендВеб-интерфейс пользователя для 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

Перед запуском Casdoor, вам нужно вручную подготовить базу данных для PostgreSQL, так как Casdoor требует выбора базы данных при открытии Postgres с 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

Режим Продакшн

Бэкенд

Соберите исполняемый код бэкенда 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 для аутентификации.

Когда мы тестируем Casnode в среде dev, мы устанавливаем serverUrl как http://localhost:7001, так что когда мы тестируем функциональность входа и регистрации с использованием Casdoor, это будет перенаправлять на localhost 7001, который является портом Casdoor.

И когда мы размещаем Casnode в среде prod, мы устанавливаем serverUrl как https://door.casdoor.com, так что пользователи могут входить или регистрироваться с использованием Casdoor.

Пример Casnode