Saltar al contenido principal

Instalación del Servidor

Requisitos

Sistema Operativo

Todos los principales sistemas operativos, incluyendo Windows, Linux y macOS, son compatibles.

Entorno

información

Sugerimos encarecidamente utilizar Yarn 1.x para ejecutar y construir el frontend de Casdoor. Usar NPM podría causar problemas de estilo de la interfaz de usuario. Para más detalles, ver: casdoor#294.

precaución

Si tu red no logra sincronizar directamente los paquetes de dependencia de Go con éxito, necesitas usar un proxy de Go configurando la variable de entorno GOPROXY. Recomendamos encarecidamente utilizar: https://goproxy.cn/

Base de datos

Casdoor utiliza XORM para comunicarse con la base de datos. Based on Xorm Drivers Support, Casdoor currently provides support for the following databases:

  • MySQL
  • MariaDB
  • PostgreSQL
  • CockroachDB
  • SQL Server
  • Oracle
  • SQLite 3
  • TiDB

Descargar

El código fuente de Casdoor está alojado en GitHub: https://github.com/casdoor/casdoor. Tanto el código backend de Go como el código frontend de React están contenidos en un solo repositorio.

NombreDescripciónIdiomaCódigo fuente
FrontendInterfaz de usuario frontend web para CasdoorJavaScript + Reacthttps://github.com/casdoor/casdoor/tree/master/web
BackendBackend API RESTful para CasdoorGolang + Beego + XORMhttps://github.com/casdoor/casdoor

Casdoor soporta Go Modules. Para descargar el código, simplemente clona el código usando git:

cd path/to/folder
git clone https://github.com/casdoor/casdoor

Configuración

Configurar Base de Datos

Casdoor soporta MySQL, MSSQL, SQLite3 y PostgreSQL. Por defecto, Casdoor utiliza MySQL.

MySQL

Casdoor almacena información de usuarios, nodos y temas en una base de datos MySQL llamada casdoor. Si la base de datos no existe, debe ser creada manualmente. La cadena de conexión de la DB se puede especificar en: https://github.com/casdoor/casdoor/blob/master/conf/app.conf

driverName = mysql
dataSourceName = root:123456@tcp(localhost:3306)/
dbName = casdoor

PostgreSQL

Antes de ejecutar Casdoor, necesitas preparar manualmente una base de datos para PostgreSQL, ya que Casdoor requiere seleccionar una base de datos al abrir Postgres con xorm.

Suponiendo que ya has preparado una base de datos llamada casdoor, deberías especificar app.conf de esta manera:

driverName = postgres
dataSourceName = user=postgres password=postgres host=localhost port=5432 sslmode=disable dbname=casdoor
dbName = casdoor
Para PostgreSQL, asegúrese de que dataSourceName tenga un dbName no vacío y también duplique el nombre de la base de datos para el campo dbname como se muestra en el ejemplo anterior. :::

CockroachDB

CockroachDB también se puede utilizar con el controlador de PostgreSQL y tiene la misma configuración que PostgreSQL.

driverName = postgres
dataSourceName = user=postgres password=postgres host=localhost port=5432 sslmode=disable dbname=casdoor serial_normalization=virtual_sequence
dbName = casdoor

SQLite3

Para configurar SQLite3, deberías especificar app.conf de esta manera:

driverName = sqlite
dataSourceName = file:casdoor.db?cache=shared
dbName = casdoor

A través de archivo Ini

Casdoor can be configured via a single file: conf/app.conf. As a beginner, you only need to modify driverName and dataSourceName based on your database (see Configure Database). Below is a complete reference of all configuration options:

ParameterDefault ValueDescription
appnamecasdoorApplication name (currently has no practical use)
httpport8000Port that the backend application listens on
runmodedevRunning mode: dev or prod
copyrequestbodytrueWhether to copy request body for later use
driverNamemysqlDatabase driver (e.g., mysql, postgres, sqlite). See Configure Database
dataSourceNameroot:123456@tcp(localhost:3306)/Database connection string. See Configure Database
dbNamecasdoorDatabase name used by Casdoor
tableNamePrefix(empty)Prefix for table names when using an adapter
showSqlfalseShow SQL statements in logger when log level is greater than INFO
redisEndpoint(empty)Redis endpoint for session storage (e.g., localhost:6379). If empty, sessions are stored locally in ./tmp. For password: host:port,db,password
defaultStorageProvider(empty)Default storage provider name for file uploads (e.g., avatars). See storage
isCloudIntranetfalseWhether provider endpoints use intranet addresses
authState"casdoor"Authorization application name checked during login
socks5Proxy"127.0.0.1:10808"SOCKS5 proxy address for OAuth providers (Google, GitHub, etc.) that may be blocked
verificationCodeTimeout10Verification code expiration time in minutes
initScore0Initial score assigned to new users (used by Casnode, not Casdoor)
logPostOnlytrueWhether to log only POST requests
isUsernameLoweredfalseWhether to convert usernames to lowercase
origin(empty)Backend origin URL (e.g., https://door.casdoor.com)
originFrontend(empty)Frontend origin URL if different from backend
staticBaseUrl"https://cdn.casbin.org"CDN URL for static assets used during database initialization
isDemoModefalseEnable demo mode restrictions
batchSize100Batch size for bulk operations
enableErrorMaskfalseWhether to mask detailed error messages
enableGziptrueAccept and respond with gzip encoding when client supports it
inactiveTimeoutMinutes(empty)Auto-logout timeout in minutes. Empty or ≤0 means no timeout
ldapServerPort389Port for LDAP server
ldapsCertId""Certificate ID for LDAPS connections
ldapsServerPort636Port for LDAPS (LDAP over SSL) server
radiusServerPort1812Port for RADIUS server
radiusDefaultOrganization"built-in"Default organization for RADIUS authentication
radiusSecret"secret"Shared secret for RADIUS authentication
quota{"organization": -1, "user": -1, "application": -1, "provider": -1}Resource quotas (-1 means unlimited)
logConfig{"adapter":"file", "filename": "logs/casdoor.log", "maxdays":99999, "perm":"0770"}Logging configuration (adapter, file path, rotation, permissions)
initDataNewOnlyfalseWhether to initialize data only for new installations
initDataFile"./init_data.json"Path to data initialization file. See Data Initialization
frontendBaseDir"../cc_0"Base directory for frontend files (only for development)

A través de Variables de Entorno

Todos los elementos de configuración definidos por Casdoor en el archivo ini mencionado anteriormente se pueden configurar a través de variables de entorno, así como algunos de los elementos de configuración de beego (httpport, appname).

Por ejemplo, cuando intentas iniciar Casdoor, puedes usar algo como esto para pasar la configuración a través de variables de entorno:

appname=casbin go run main.go

Además, los derivados de export también son un método posible. Los nombres de las variables ambientales deben coincidir exactamente con los nombres que deseas utilizar en el archivo ini.

Nota: las configuraciones en variables ambientales pueden sobrescribir las configuraciones en el archivo ini.

Ejecutar

Actualmente hay dos métodos para iniciar, y puedes elegir uno según tu situación.

Modo de Desarrollo

Backend

El backend de Go de Casdoor se ejecuta en el puerto 8000 por defecto. Puedes iniciar el backend de Go con el siguiente comando:

go run main.go

Después de que el servidor esté funcionando con éxito, puedes iniciar la parte frontend.

Frontend

El frontend de Casdoor es un proyecto muy clásico de Create-React-App (CRA). Se ejecuta en el puerto 7001 por defecto. Usa los siguientes comandos para ejecutar el frontend:

cd web
yarn install
yarn start

Visita http://localhost:7001 en tu navegador. Inicie sesión en el panel de Casdoor con la cuenta de administrador global predeterminada: built-in/admin.

admin
123

Modo Producción

Backend

Construya el código del backend de Casdoor Go en un ejecutable e inícielo.

Para Linux:

go build
./casdoor

Para Windows:

go build
casdoor.exe

Frontend

Construya el código del frontend de Casdoor en recursos estáticos (archivos .html, .js, .css):

cd web
yarn install
yarn build

Visite http://localhost:8000 en su navegador. Inicie sesión en el panel de Casdoor con la cuenta de administrador global predeterminada: built-in/admin.

admin
123
consejo

Para usar otro puerto, por favor edite conf/app.conf y modifique httpport, luego reinicie el backend de Go.

Detalles del Puerto de Casdoor

En el entorno dev, el frontend se ejecuta por yarn run en el puerto 7001, así que si quiere ir a la página de inicio de sesión de Casdoor, necesita configurar el enlace de Casdoor como http://localhost:7001.

En el entorno prod, los archivos del frontend se construyen primero por yarn build y se sirven en el puerto 8000, así que si quiere ir a la página de inicio de sesión de Casdoor, necesita configurar el enlace de Casdoor como https://your-casdoor-url.com:8000 (Si está utilizando un proxy inverso, necesita configurar el enlace como su dominio).

Tome Nuestro Foro Oficial Casnode como Ejemplo

Casnode utiliza Casdoor para manejar la autenticación.

Cuando estamos probando Casnode en el entorno dev, configuramos el serverUrl como http://localhost:7001, así que cuando probamos la funcionalidad de inicio de sesión y registro usando Casdoor, irá a localhost 7001, que es el puerto de Casdoor.

Y cuando ponemos Casnode en el entorno prod, configuramos el serverUrl como https://door.casdoor.com, así los usuarios pueden iniciar sesión o registrarse usando Casdoor.

Ejemplo de Casnode