Встановлення сервера
Вимоги
Операційна система
Підтримуються всі основні операційні системи, включаючи Windows, Linux та macOS.
Середовище
Використання Casibase розділено на два етапи:
- Етап 1: Розгортання та запуск Casdoor
- Етап 2: Розгортання та запуск Casibase (цей документ)
Ми настійно рекомендуємо використовувати Yarn 1.x для запуску та збірки фронтенду Casdoor&Casibase, оскільки використання NPM може призвести до проблем зі стилізацією інтерфейсу, більше деталей дивіться за посиланням: casdoor#294
Для китайських користувачів, щоб успішно завантажувати пакети залежностей Go, потрібно використовувати Go proxy, налаштувавши змінну середовища GOPROXY. Ми настійно рекомендуємо: https://goproxy.cn/
База даних
Casibase використовує XORM для взаємодії з базою даних. Базуючись на Підтримці драйверів Xorm, Casibase наразі підтримує наступні бази даних:
MySQL
MariaDB
PostgreSQL
CockroachDB
SQL Server
Oracle
SQLite 3
TiDB
guacd
Casibase використовує guacamole-server для надання доступу до віддаленого робочого столу. Якщо ви бажаєте використовувати цю функцію, спочатку потрібно встановити guacamole-server. Якщо ви ще не встановили guacamole-server, будь ласка, ознайомтеся з інструкцією з встановлення guacamole-server.
Ви також можете запустити guacd у docker за допомогою такої команди:
docker run -d --name guacd -p 4822:4822 guacamole/guacd
Завантаження
Джерельний код Casibase розміщено на GitHub: https://github.com/casibase/casibase. І бекенд на Go, і фронтенд на React знаходяться в одному репозиторії.
Назва | Опис | Мова | Вихідний код |
---|---|---|---|
Фронтенд | Веб-інтерфейс Casibase | JavaScript + React | https://github.com/casibase/casibase/tree/master/web |
Бекенд | RESTful API бекенд Casibase | Golang + Beego + XORM | https://github.com/casibase/casibase |
Casibase підтримує Go Modules
. Щоб завантажити код, ви можете просто клонувати репозиторій за допомогою git:
cd шлях/до/папки
git clone https://github.com/casibase/casibase
Налаштування
Налаштування Casdoor
Будь ласка, зверніться до розділу Casdoor-SSO для налаштування Casdoor.
Запам'ятайте ваші clientId
,clientSecret
,organization
,application
тощо в конфігурації Casdoor, вони нам знадобляться надалі.
Налаштування бази даних
Casibase підтримує mysql, mssql, sqlite3, postgres. За замовчуванням Casibase використовує mysql.
MySQL
Casibase зберігатиме інформацію про своїх користувачів, вузли та теми в базі даних MySQL з назвою: casibase
. Якщо база даних не існує, її потрібно створити вручну. Рядок підключення до бази даних можна вказати за адресою: https://github.com/casibase/casibase/blob/master/conf/app.conf
driverName = mysql dataSourceName = root:123456@tcp(localhost:3306)/ dbName = casibase
PostgreSQL
Оскільки ми повинні вибрати базу даних при відкритті Postgres за допомогою xorm, вам слід вручну підготувати базу даних перед запуском Casibase.
Припустимо, ви підготували базу даних з назвою casibase
, тоді вам слід вказати app.conf
:
driverName = postgres dataSourceName = "user=postgres password=postgres host=localhost port=5432 sslmode=disable dbname=casibase" dbName =
Для PostgreSQL переконайтеся, що dataSourceName
має ненульове значення dbName
, а окреме поле dbName
залишається порожнім, як у прикладі вище.
CockroachDB
Ви також можете використовувати Cockroachdb з драйвером postgres. Вона має таку ж конфігурацію, як postgreSQL.
driverName = postgres dataSourceName = "user=postgres password=postgres host=localhost port=5432 sslmode=disable dbname=casibase serial_normalization=virtual_sequence" dbName =
Для CockroachDB не забудьте додати serial_normalization=virtual_sequence
до dataSourceName
, як у наведеному прикладі. інакше при запуску або перезапуску сервісу ви отримаєте помилку щодо існуючої бази даних. Зверніть увагу, це потрібно додати до створення бази даних.
Sqlite3
Ви повинні вказати app.conf
:
driverName = sqlite
dataSourceName = "file:casibase.db?cache=shared"
dbName = casibase
Налаштування за бажанням
Casibase підтримує користувацьку конфігурацію, ви можете змінити файл конфігурації conf/app.conf
для зміни налаштувань.
- Бекенд (conf/app.conf)
casdoorEndpoint = <Ваша кінцева точка Casdoor>
clientId = <ID клієнта вашої програми Casdoor>
clientSecret = <Секрет клієнта вашої програми Casdoor>
casdoorOrganization = <Назва вашої організації Casdoor>
casdoorApplication = <Назва вашої програми Casdoor>
- Фронтенд (web/src/Conf.js)
serverUrl: "<Ваша кінцева точка Casdoor>"
clientId: "<ID клієнта вашої програми Casdoor>"
appName: "<Назва вашої програми Casdoor>"
organizationName: "<Назва вашої організації Casdoor>"
Запуск
Наразі є два способи запуску, ви можете вибрати один з них відповідно до вашої ситуації.
Casibase потребує Casdoor для забезпечення контролю доступу та деяких серверних послуг, тому перед запуском Casibase ви повинні переконатися, що Casdoor працює нормально.
Як встановити та запустити Casdoor:
Режим розробки
Бекенд
Go-бекенд Casibase за замовчуванням працює на порту 14000. Ви можете запустити Go-бекенд за допомогою наступної команди:
go run main.go
Після успішного запуску сервера ми можемо запустити частину фронтенду.
Фронтенд
Фронтенд Casibase - це класичний проєкт Create-React-App (CRA). За замовчуванням він працює на порту 13001
. Використовуйте наступні команди для запуску фронтенду:
cd web
yarn install
yarn start
Режим виробництва
Бекенд
Зібрати код бекенду Casibase Go у виконуваний файл і запустити його.
Для Linux:
go build
./casibase
Для Windows:
go build
casibase.exe
Фронтенд
Зібрати код фронтенду Casibase у статичні ресурси (файли .html, .js, .css):
cd web
yarn install
yarn build
Nginx
Якщо ви використовуєте nginx як зворотний проксі, вам потрібно додати наступну конфігурацію у ваш файл конфігурації nginx:
location / {
*** Ваша конфігурація ***
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
Це необхідно, оскільки Casibase використовує websocket для спілкування з guacd.
Перегляд
Відкрийте у браузері: http://localhost:13001
. Увійдіть у панель керування Casibase, використовуючи обліковий запис, який ви щойно зареєстрували в Casdoor:
Потім ви перейдете на головну сторінку Casibase:
Щоб використовувати інший порт, відредагуйте conf/app.conf
і змініть httpport
, потім перезапустіть бекенд Go.