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

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

Требования

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

Поддерживаются все основные операционные системы, включая 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
  • 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.

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

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