Перейти до основного вмісту

Встановлення сервера

Вимоги

Операційна система

Підтримуються всі основні операційні системи, включаючи 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 для 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

Режим виробництва

Бекенд

Зібрати код 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 бекенд.

Деталі порту 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