Установка сервера
Требования
Операционная система
Поддерживаются все основные операционные системы, включая 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 содержатся в одном репозитории.
Имя | Описание | Язык | Исходный код |
---|---|---|---|
Фронтенд | Веб-интерфейс пользователя для 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
Перед запуском 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
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.
В среде 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.