Instalación del servidor
Requisitos
Sistema operativo
Se admiten todos los principales sistemas operativos, incluidos Windows, Linux y macOS.
Entorno
El uso de Casibase se divide en dos pasos:
- Paso 1: Despliegue y ejecución de Casdoor
- Paso 2: Despliegue y ejecución de Casibase (este documento)
Recomendamos encarecidamente usar Yarn 1.x para ejecutar y construir el frontend de Casdoor y Casibase. El uso de NPM puede causar problemas de estilo en la interfaz de usuario, consulte: casdoor#294
Para usuarios chinos, para descargar con éxito los paquetes de dependencias de Go, necesita utilizar un proxy de Go configurando la variable de entorno GOPROXY. Recomendamos encarecidamente: https://goproxy.cn/
Base de datos
Casibase utiliza XORM para comunicarse con la base de datos. Basado en el soporte de controladores de Xorm, Casibase actualmente admite las siguientes bases de datos:
MySQL (base de datos)
MariaDB
PostgreSQL
CockroachDB
SQL Server
Oracle (base de datos)
SQLite 3 (base de datos)
TiDB
guacd (servicio)
Casibase utiliza guacamole-server para proporcionar acceso a escritorio remoto. Si desea utilizar esta función, necesita instalar guacamole-server antes. Si aún no ha instalado guacamole-server, consulte instalación de guacamole-server.
También puede ejecutar guacd en docker con el siguiente comando:
# Ejecutar guacd en modo daemon
docker run -d --name guacd -p 4822:4822 guacamole/guacd
Descarga
El código fuente de Casibase está alojado en GitHub: https://github.com/casibase/casibase. El código backend de Go y el código frontend de React están ambos en el mismo repositorio.
Nombre | Descripción | Lenguaje | Código fuente |
---|---|---|---|
Interfaz | UI web de Casibase | JavaScript + React | https://github.com/casibase/casibase/tree/master/web |
Servidor | API RESTful de Casibase | Golang + Beego + XORM (framework y ORM) | https://github.com/casibase/casibase |
Casibase soporta Go Modules
. Para descargar el código, simplemente clone el código a través de git:
# Clonar repositorio
cd path/to/folder
git clone https://github.com/casibase/casibase
Configuración
Configuración de Casdoor
Consulte la sección Casdoor-SSO para configurar Casdoor.
Recuerde la información de su configuración de Casdoor, como clientId
, clientSecret
, organization
, application
, etc. Los usaremos más adelante.
Configuración de la base de datos
Casibase admite mysql, mssql, sqlite3, postgres. Casibase utiliza mysql por defecto.
MySQL (base de datos)
Casibase almacenará su información de usuarios, nodos y modelos en una base de datos MySQL llamada casibase
. Si la base de datos no existe, necesita crearla manualmente. La cadena de conexión a la base de datos se puede especificar aquí: https://github.com/casibase/casibase/blob/master/conf/app.conf
driverName = mysql dataSourceName = root:123456@tcp(localhost:3306)/ dbName = casibase
PostgreSQL
Como debemos seleccionar una base de datos al abrir Postgres con xorm, debe preparar manualmente una base de datos antes de ejecutar Casibase.
Supongamos que ha preparado una base de datos llamada casibase
, entonces debería especificar app.conf
:
driverName = postgres dataSourceName = "user=postgres password=postgres host=localhost port=5432 sslmode=disable dbname=casibase" dbName =
Para PostgreSQL, asegúrese de que dataSourceName
tenga un dbName
no vacío y deje el campo dbName
separado vacío como en el ejemplo anterior.
CockroachDB
También puede usar el controlador postgres para usar Cockroachdb. Su configuración es la misma que PostgreSQL.
driverName = postgres dataSourceName = "user=postgres password=postgres host=localhost port=5432 sslmode=disable dbname=casibase serial_normalization=virtual_sequence" dbName =
Para CockroachDB, no olvide agregar serial_normalization=virtual_sequence
a dataSourceName
como en el ejemplo anterior. De lo contrario, recibirá un error sobre la existencia de la base de datos cada vez que se inicie o reinicie el servicio. Tenga en cuenta que esto debe agregarse antes de crear la base de datos.
Sqlite3 (base de datos ligera)
Debe especificar app.conf
:
driverName = sqlite
dataSourceName = "file:casibase.db?cache=shared"
dbName = casibase
Configuración personalizada
Casibase admite configuración personalizada, puede modificar el archivo de configuración conf/app.conf
para cambiar la configuración.
- Servidor (conf/app.conf)
casdoorEndpoint = <Su punto final de Casdoor>
clientId = <El ID de cliente de su aplicación Casdoor>
clientSecret = <El secreto de cliente de su aplicación Casdoor>
casdoorOrganization = <El nombre de su organización Casdoor>
casdoorApplication = <El nombre de su aplicación Casdoor>
- Interfaz (web/src/Conf.js)
serverUrl: "<Su punto final de Casdoor>"
clientId: "<El ID de cliente de su aplicación Casdoor>"
appName: "<El nombre de su aplicación Casdoor>"
organizationName: "<El nombre de su organización Casdoor>"
Ejecutar
Actualmente hay dos métodos de inicio, puede elegir uno de ellos según su situación.
Casibase necesita Casdoor para proporcionar control de acceso y algunos servicios de backend, así que antes de ejecutar Casibase, debe asegurarse de que Casdoor esté funcionando correctamente.
Cómo instalar y ejecutar Casdoor:
Modo de desarrollo
Servidor
El backend Go de Casibase se ejecuta de forma predeterminada en el puerto 14000. Puede iniciar el backend Go con el siguiente comando:
go run main.go
Después de que el servidor se inicie correctamente, podemos iniciar la parte del frontend.
Interfaz
El frontend de Casibase es un proyecto Create-React-App (CRA) muy clásico. Se ejecuta de forma predeterminada en el puerto 13001
. Use los siguientes comandos para ejecutar el frontend:
cd web
yarn install
yarn start
Modo de producción
Servidor
Compile el código del backend Go de Casibase en un ejecutable e inícielo.
Para Linux:
go build
./casibase
Para Windows:
# Compilar para Windows
go build
casibase.exe
Interfaz
Compile el código del frontend de Casibase en recursos estáticos (archivos .html, .js, .css):
cd web
yarn install
yarn build
Nginx (servidor web)
Si usa nginx como proxy inverso, debe agregar la siguiente configuración en su archivo de configuración de nginx:
location / {
*** Su configuración ***
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
Porque Casibase usa websocket para comunicarse con guacd.
Vista previa
Visite http://localhost:13001
en su navegador. Inicie sesión en el panel de control de Casibase con la cuenta de usuario que acaba de registrar en Casdoor:
Luego accederá a la página de inicio de Casibase:
Para usar un puerto diferente, edite conf/app.conf
y modifique httpport
, luego reinicie el backend Go.