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

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

Требования

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

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

Окружение

информация

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

осторожно

Если ваша сеть не может напрямую синхронизировать пакеты зависимостей Go успешно, вам нужно использовать Go прокси, настроив переменную окружения GOPROXY. Мы настоятельно рекомендуем использовать: https://goproxy.cn/

База данных

Casdoor использует XORM для взаимодействия с базой данных. На основе Поддержка драйверов Xorm, Casdoor в настоящее время предоставляет поддержку для следующих баз данных:

  • 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 может быть настроен через один файл: 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
inactiveTimeoutMinutes =
  • appname это имя приложения, которое в настоящее время не имеет практического использования.
  • httpport это порт, на котором слушает ваше бэкенд приложение.
  • runmode может быть установлен в dev или prod.
  • SessionOn определяет, следует ли включать сессию, и по умолчанию она включена.
  • driverName, dataSourceName и dbName были представлены ранее. Пожалуйста, смотрите Настройка базы данных для деталей.
  • verificationCodeTimeout устанавливает время истечения срока действия кода подтверждения. После истечения срока действия пользователь должен получить его снова.

Как новичок, вам нужно изменить только два пункта: driverName и dataSourceName в зависимости от вашей базы данных. Эта база данных будет использоваться Casdoor для хранения всех данных, включая пользователей, организации и приложения.

  • tableNamePrefix это префикс таблицы при использовании адаптера.
  • showSql определяет, следует ли показывать SQL-запросы в логгере, если уровень логирования выше INFO.
  • redisEndpoint это конечная точка Redis, используемая для хранения сессий Beego. Если этот параметр пуст, данные сессии будут храниться локально в виде файлов в папке ./tmp. Чтобы использовать Redis как хранилище сессий Beego, значение будет примерно таким: 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 это IP-адрес сервера SOCKS прокси. Установите порт прокси, потому что у нас есть связанные с Google сервисы или используйте Google, GitHub, Facebook, LinkedIn или Steam как OAuth провайдеров, которые могут быть ограничены сетью в некоторых районах.
  • initScore это начальный счет каждого пользователя. У каждого пользователя есть атрибут счета. Счет используется Casnode и не контролирует ничего в Casdoor.
  • logPostOnly используется для определения, используется ли только метод post для добавления записи.
  • origin это оригинальное доменное имя бэкенда.
  • staticBaseUrl это адрес статического изображения, используемого при инициализации базы данных системы.
  • enableGzip будет принимать и отвечать с кодировкой gzip, если заголовок запроса включает Accept-Encoding=gzip.
  • inactiveTimeoutMinutes sets the maximum number of minutes of inactivity. If the inactivity time reaches this value, then casdoor will log the user out. Empty value or value less than or equal to 0 means there is no limit on the user's inactivity time.

Через переменные окружения

Все элементы конфигурации, определенные 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