Installation du serveur
Exigences
Système d'exploitation
Tous les principaux systèmes d'exploitation, y compris Windows, Linux et macOS, sont pris en charge.
Environnement
Nous suggérons fortement d'utiliser Yarn 1.x pour exécuter et construire le frontend de Casdoor. L'utilisation de NPM pourrait causer des problèmes de style de l'interface utilisateur. Pour plus de détails, voir : casdoor#294.
Si votre réseau ne parvient pas à synchroniser directement les packages de dépendance Go avec succès, vous devez utiliser un proxy Go en configurant la variable d'environnement GOPROXY. Nous recommandons fortement d'utiliser : https://goproxy.cn/
Base de données
Casdoor utilise XORM pour communiquer avec la base de données. Basé sur Support des pilotes Xorm, Casdoor offre actuellement un support pour les bases de données suivantes :
MySQL
MariaDB
PostgreSQL
CockroachDB
SQL Server
Oracle
SQLite 3
TiDB
Télécharger
Le code source de Casdoor est hébergé sur GitHub : https://github.com/casdoor/casdoor. Le code backend Go et le code frontend React sont contenus dans un seul dépôt.
Nom | Description | Langue | Code source |
---|---|---|---|
Frontend | Interface utilisateur frontend Web pour Casdoor | JavaScript + React | https://github.com/casdoor/casdoor/tree/master/web |
Backend | Backend API RESTful pour Casdoor | Golang + Beego + XORM | https://github.com/casdoor/casdoor |
Casdoor prend en charge Go Modules
. Pour télécharger le code, clonez simplement le code en utilisant git :
cd path/to/folder
git clone https://github.com/casdoor/casdoor
Configuration
Configurer la base de données
Casdoor prend en charge MySQL, MSSQL, SQLite3 et PostgreSQL. Par défaut, Casdoor utilise MySQL.
MySQL
Casdoor stocke les informations des utilisateurs, des nœuds et des sujets dans une base de données MySQL nommée casdoor
. Si la base de données n'existe pas, elle doit être créée manuellement. La chaîne de connexion DB peut être spécifiée à : https://github.com/casdoor/casdoor/blob/master/conf/app.conf
driverName = mysql
dataSourceName = root:123456@tcp(localhost:3306)/
dbName = casdoor
PostgreSQL
Avant d'exécuter Casdoor, vous devez préparer manuellement une base de données pour PostgreSQL, car Casdoor nécessite de sélectionner une base de données lors de l'ouverture de Postgres avec xorm.
En supposant que vous avez déjà préparé une base de données appelée casdoor
, vous devriez spécifier app.conf
comme ceci :
driverName = postgres
dataSourceName = "user=postgres password=postgres host=localhost port=5432 sslmode=disable dbname=casdoor"
dbName = casdoor
dataSourceName
a un dbName
non vide et aussi dupliquez le nom de la base de données pour le champ dbname
comme montré dans l'exemple ci-dessus. :::CockroachDB
CockroachDB peut également être utilisé avec le pilote PostgreSQL et a la même configuration que PostgreSQL.
driverName = postgres
dataSourceName = "user=postgres password=postgres host=localhost port=5432 sslmode=disable dbname=casdoor serial_normalization=virtual_sequence"
dbName = casdoor
SQLite3
Pour configurer SQLite3, vous devriez spécifier app.conf
comme ceci :
driverName = sqlite
dataSourceName = "file:casdoor.db?cache=shared"
dbName = casdoor
Via le fichier Ini
Casdoor peut être configuré via un seul fichier : conf/app.conf, qui par défaut contient le contenu suivant :
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
est le nom de l'application, qui actuellement n'a pas d'utilisation pratique.httpport
est le port sur lequel votre application backend écoute.runmode
peut être réglé surdev
ouprod
.SessionOn
détermine s'il faut activer la session et est activé par défaut.driverName
,dataSourceName
, etdbName
ont été introduits plus tôt. Veuillez voir Configurer la base de données pour plus de détails.verificationCodeTimeout
définit le temps d'expiration du code de vérification. Après expiration, l'utilisateur doit l'obtenir à nouveau.
En tant que débutant, vous n'avez besoin de modifier que deux éléments : driverName
et dataSourceName
en fonction de votre base de données. Cette base de données sera utilisée par Casdoor pour stocker toutes les données, y compris les utilisateurs, les organisations et les applications.
tableNamePrefix
est le préfixe de la table lors de l'utilisation d'un adaptateur.showSql
détermine s'il faut afficher les instructions SQL sur le logger si le niveau de log est supérieur à INFO.redisEndpoint
est le point de terminaison Redis utilisé par le stockage de session Beego. Si ce paramètre est vide, les données de session seront stockées localement sous forme de fichiers dans le dossier./tmp
. Pour utiliser Redis comme stockage de session Beego, la valeur serait quelque chose comme :redis.example.com:6379
. Si Redis est déployé localement, vous pouvez utiliserlocalhost:6379
. Si un mot de passe Redis est activé, utilisezredis.example.com:6379,db,password
. Voir plus de détails à : https://github.com/beego/beedoc/blob/master/en-US/module/session.md#saving-provider-config.defaultStorageProvider
est le nom du service de stockage de fichiers par défaut. Si vous avez besoin d'utiliser des services de stockage de fichiers tels que le téléchargement d'avatar, vous devez configurer un fournisseur de stockage et l'appliquer dans votre application. Voir stockage pour plus de détails.isCloudIntranet
est utilisé pour identifier si votre point de terminaison de fournisseur est un point de terminaison intranet.authState
est le nom de l'application d'autorisation. Ce paramètre sera vérifié lors de la connexion.socks5Proxy
est l'adresse IP du serveur proxy SOCKS. Définissez le port proxy car nous avons des services liés à Google ou utilisonsGoogle
,GitHub
,Facebook
,LinkedIn
, ouSteam
comme fournisseurs OAuth, qui peuvent être restreints par le réseau dans certaines zones.initScore
est le score initial de chaque utilisateur. Chaque utilisateur a un attribut de score. Le score est utilisé par Casnode et ne contrôle rien dans Casdoor.logPostOnly
est utilisé pour déterminer si seule la méthode post est utilisée pour ajouter un enregistrement.origin
est le nom de domaine backend d'origine.staticBaseUrl
est l'adresse de l'image statique utilisée lorsque le système initialise la base de données.enableGzip
acceptera et répondra avec un encodage gzip si l'en-tête de la requête comprendAccept-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.
Via les variables d'environnement
Tous les éléments de configuration définis par Casdoor dans le fichier ini mentionné ci-dessus peuvent être configurés via des variables d'environnement, ainsi que certains des éléments de configuration de beego (httpport, appname).
Par exemple, lorsque vous essayez de démarrer Casdoor, vous pouvez utiliser quelque chose comme ceci pour passer la configuration via des variables d'environnement :
appname=casbin go run main.go
De plus, les dérivés de export
sont également une méthode possible. Les noms des variables environnementales doivent correspondre exactement aux noms que vous souhaitez utiliser dans le fichier ini.
Remarque : les configurations dans les variables environnementales peuvent remplacer les configurations dans le fichier ini.
Exécuter
Il existe actuellement deux méthodes pour démarrer, et vous pouvez en choisir une selon votre situation.
Mode Développement
Backend
Le backend Go de Casdoor s'exécute sur le port 8000 par défaut. Vous pouvez démarrer le backend Go avec la commande suivante :
go run main.go
Après que le serveur fonctionne avec succès, vous pouvez démarrer la partie frontend.
Frontend
Le frontend de Casdoor est un projet très classique Create-React-App (CRA). Il s'exécute sur le port 7001
par défaut. Utilisez les commandes suivantes pour exécuter le frontend :
cd web
yarn install
yarn start
Visitez http://localhost:7001 dans votre navigateur. Connectez-vous au tableau de bord Casdoor avec le compte administrateur global par défaut : built-in/admin
.
admin
123
Mode Production
Backend
Construisez le code backend Go de Casdoor en un exécutable et démarrez-le.
Pour Linux :
go build
./casdoor
Pour Windows :
go build
casdoor.exe
Frontend
Construisez le code frontend de Casdoor en ressources statiques (fichiers .html, .js, .css) :
cd web
yarn install
yarn build
Visitez http://localhost:8000 dans votre navigateur. Connectez-vous au tableau de bord Casdoor avec le compte administrateur global par défaut : built-in/admin
.
admin
123
Pour utiliser un autre port, veuillez éditer conf/app.conf
et modifier httpport
, puis redémarrez le backend Go.
Dans l'environnement dev, le frontend est exécuté par yarn run
sur le port 7001, donc si vous voulez aller à la page de connexion Casdoor, vous devez définir le lien Casdoor comme http://localhost:7001.
Dans l'environnement prod, les fichiers frontend sont d'abord construits par yarn build
et servis sur le port 8000, donc si vous voulez aller à la page de connexion Casdoor, vous devez définir le lien Casdoor comme https://your-casdoor-url.com:8000 (Si vous utilisez un proxy inverse, vous devez définir le lien comme votre domaine).
Prenez notre forum officiel Casnode comme exemple
Casnode utilise Casdoor pour gérer l'authentification.
Lorsque nous testons Casnode dans l'environnement dev, nous définissons le serverUrl
comme http://localhost:7001, donc lorsque nous testons les fonctionnalités de connexion et d'inscription en utilisant Casdoor, cela nous amène au port 7001 de localhost, qui est le port de Casdoor.
Et lorsque nous mettons Casnode dans l'environnement prod, nous définissons le serverUrl
comme https://door.casdoor.com, donc les utilisateurs peuvent se connecter ou s'inscrire en utilisant Casdoor.