Встановлення сервера
Вимоги
Операційна система
Підтримуються всі основні операційні системи, включаючи 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 містяться в одному репозиторії.
Ім'я | Опис | Мова | Вихідний код |
---|---|---|---|
Фронтенд | Веб-фронтенд 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
Перед запуском 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
Режим виробництва
Бекенд
Зібрати код 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.