Serverinstallation
Anforderungen
Betriebssystem
Alle wichtigen Betriebssysteme, einschließlich Windows, Linux und macOS, werden unterstützt.
Umgebung
Wir empfehlen dringend, Yarn 1.x zu verwenden, um das Casdoor-Frontend auszuführen und zu bauen. Die Verwendung von NPM könnte zu Problemen mit dem UI-Styling führen. Weitere Details finden Sie unter: casdoor#294.
Wenn Ihr Netzwerk die Go-Abhängigkeitspakete nicht direkt erfolgreich synchronisieren kann, müssen Sie einen Go-Proxy verwenden, indem Sie die Umgebungsvariable GOPROXY konfigurieren. Wir empfehlen dringend die Verwendung von: https://goproxy.cn/
Datenbank
Casdoor verwendet XORM, um mit der Datenbank zu kommunizieren. Basierend auf der Xorm Drivers Support, bietet Casdoor derzeit Unterstützung für die folgenden Datenbanken:
MySQL
MariaDB
PostgreSQL
CockroachDB
SQL Server
Oracle
SQLite 3
TiDB
Herunterladen
Der Quellcode von Casdoor ist auf GitHub gehostet: https://github.com/casdoor/casdoor. Sowohl der Go-Backend-Code als auch der React-Frontend-Code befinden sich in einem einzigen Repository.
Name | Beschreibung | Sprache | Quellcode |
---|---|---|---|
Frontend | Web-Frontend-Benutzeroberfläche für Casdoor | JavaScript + React | https://github.com/casdoor/casdoor/tree/master/web |
Backend | RESTful-API-Backend für Casdoor | Golang + Beego + XORM | https://github.com/casdoor/casdoor |
Casdoor unterstützt Go Modules
. Um den Code herunterzuladen, klonen Sie einfach den Code mit git:
cd path/to/folder
git clone https://github.com/casdoor/casdoor
Konfiguration
Datenbank konfigurieren
Casdoor unterstützt MySQL, MSSQL, SQLite3 und PostgreSQL. Standardmäßig verwendet Casdoor MySQL.
MySQL
Casdoor speichert Benutzer-, Knoten- und Themendaten in einer MySQL-Datenbank namens casdoor
. Wenn die Datenbank nicht existiert, muss sie manuell erstellt werden. Die DB-Verbindungszeichenfolge kann hier angegeben werden: https://github.com/casdoor/casdoor/blob/master/conf/app.conf
driverName = mysql
dataSourceName = root:123456@tcp(localhost:3306)/
dbName = casdoor
PostgreSQL
Bevor Sie Casdoor ausführen, müssen Sie manuell eine Datenbank für PostgreSQL vorbereiten, da Casdoor beim Öffnen von Postgres mit xorm eine Datenbank auswählen muss.
Angenommen, Sie haben bereits eine Datenbank namens casdoor
vorbereitet, sollten Sie app.conf
so angeben:
driverName = postgres
dataSourceName = "user=postgres password=postgres host=localhost port=5432 sslmode=disable dbname=casdoor"
dbName = casdoor
dataSourceName
einen nicht-leeren dbName
hat und auch duplizieren Sie den Datenbanknamen für das Feld dbname
wie im obigen Beispiel gezeigt. :::CockroachDB
CockroachDB kann auch mit dem PostgreSQL-Treiber verwendet werden und hat die gleiche Konfiguration wie PostgreSQL.
driverName = postgres
dataSourceName = "user=postgres password=postgres host=localhost port=5432 sslmode=disable dbname=casdoor serial_normalization=virtual_sequence"
dbName = casdoor
SQLite3
Um SQLite3 zu konfigurieren, sollten Sie app.conf
so angeben:
driverName = sqlite
dataSourceName = "file:casdoor.db?cache=shared"
dbName = casdoor
Über Ini-Datei
Casdoor kann über eine einzige Datei konfiguriert werden: conf/app.conf, die standardmäßig den folgenden Inhalt enthält:
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
ist der Anwendungsname, der derzeit keine praktische Verwendung hat.httpport
ist der Port, auf dem Ihre Backend-Anwendung lauscht.runmode
kann aufdev
oderprod
gesetzt werden.SessionOn
bestimmt, ob die Sitzung aktiviert ist und ist standardmäßig aktiviert.driverName
,dataSourceName
unddbName
wurden früher eingeführt. Bitte sehen Sie Datenbank konfigurieren für Details.verificationCodeTimeout
legt die Ablaufzeit des Bestätigungscodes fest. Nach Ablauf muss der Benutzer ihn erneut erhalten.
Als Anfänger müssen Sie nur zwei Elemente ändern: driverName
und dataSourceName
basierend auf Ihrer Datenbank. Diese Datenbank wird von Casdoor verwendet, um alle Daten zu speichern, einschließlich Benutzer, Organisationen und Anwendungen.
tableNamePrefix
ist das Präfix der Tabelle bei Verwendung eines Adapters.showSql
bestimmt, ob SQL-Anweisungen im Logger angezeigt werden, wenn das Protokollniveau größer als INFO ist.redisEndpoint
ist der Redis-Endpunkt, der von Beego-Sitzungsspeicher verwendet wird. Wenn dieser Parameter leer ist, werden die Sitzungsdaten lokal als Dateien im./tmp
-Ordner gespeichert. Um Redis als Beego-Sitzungsspeicher zu verwenden, wäre der Wert so etwas wie:redis.example.com:6379
. Wenn Redis lokal bereitgestellt wird, können Sielocalhost:6379
verwenden. Wenn ein Redis-Passwort aktiviert ist, verwenden Sieredis.example.com:6379,db,password
. Weitere Details finden Sie unter: https://github.com/beego/beedoc/blob/master/en-US/module/session.md#saving-provider-config.defaultStorageProvider
ist der Standardname des Dateispeicherdienstes. Wenn Sie Dateispeicherdienste wie Avatar-Upload verwenden möchten, müssen Sie einen Speicheranbieter einrichten und in Ihrer Anwendung verwenden. Siehe Speicher für Details.isCloudIntranet
wird verwendet, um zu identifizieren, ob Ihr Anbieterendpunkt ein Intranet-Endpunkt ist.authState
ist der Name der Autorisierungsanwendung. Dieser Parameter wird beim Einloggen überprüft.socks5Proxy
ist die IP-Adresse des SOCKS-Proxy-Servers. Stellen Sie den Proxy-Port ein, weil wir Google-bezogene Dienste haben oderGoogle
,GitHub
,Facebook
,LinkedIn
oderSteam
als OAuth-Anbieter verwenden, die in einigen Bereichen durch das Netzwerk eingeschränkt sein können.initScore
ist die Anfangspunktzahl jedes Benutzers. Jeder Benutzer hat ein Punkteattribut. Die Punktzahl wird von Casnode verwendet und steuert nichts in Casdoor.logPostOnly
wird verwendet, um zu bestimmen, ob nur die Post-Methode verwendet wird, um einen Datensatz hinzuzufügen.origin
ist der ursprüngliche Backend-Domainname.staticBaseUrl
ist die Adresse des statischen Bildes, das verwendet wird, wenn die Datenbank initialisiert wird.enableGzip
wird gzip-Kodierung akzeptieren und darauf antworten, wenn die AnforderungsüberschriftAccept-Encoding=gzip
enthält.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.
Über Umgebungsvariablen
Alle von Casdoor in der oben genannten ini-Datei definierten Konfigurationselemente können über Umgebungsvariablen konfiguriert werden, ebenso wie einige der Beego-Konfigurationselemente (httpport, appname).
Zum Beispiel, wenn Sie versuchen, Casdoor zu starten, können Sie so etwas verwenden, um die Konfiguration über Umgebungsvariablen zu übergeben:
appname=casbin go run main.go
Darüber hinaus sind auch export
-Ableitungen eine mögliche Methode. Die Namen der Umgebungsvariablen sollten genau mit den Namen übereinstimmen, die Sie in der ini-Datei verwenden möchten.
Hinweis: Konfigurationen in Umgebungsvariablen können die Konfigurationen in der ini-Datei überschreiben.
Ausführen
Derzeit gibt es zwei Methoden zum Starten, und Sie können je nach Ihrer Situation eine auswählen.
Entwicklungsmodus
Backend
Das Go-Backend von Casdoor läuft standardmäßig auf Port 8000. Sie können das Go-Backend mit dem folgenden Befehl starten:
go run main.go
Nachdem der Server erfolgreich läuft, können Sie den Frontend-Teil starten.
Frontend
Das Frontend von Casdoor ist ein sehr klassisches Create-React-App (CRA)-Projekt. Es läuft standardmäßig auf Port 7001
. Verwenden Sie die folgenden Befehle, um das Frontend auszuführen:
cd web
yarn install
yarn start
Besuchen Sie http://localhost:7001 in Ihrem Browser. Melden Sie sich mit dem standardmäßigen globalen Admin-Konto im Casdoor-Dashboard an: built-in/admin
.
admin
123
Produktionsmodus
Backend
Bauen Sie den Casdoor Go Backend-Code in eine ausführbares Programm um und starten Sie es.
Für Linux:
go build
./casdoor
Für Windows:
go build
casdoor.exe
Frontend
Bauen Sie den Casdoor Frontend-Code in statische Ressourcen (.html, .js, .css Dateien):
cd web
yarn install
yarn build
Besuchen Sie http://localhost:8000 in Ihrem Browser. Melden Sie sich mit dem standardmäßigen globalen Admin-Konto im Casdoor-Dashboard an: built-in/admin
.
admin
123
Um einen anderen Port zu verwenden, bearbeiten Sie bitte conf/app.conf
und ändern Sie httpport
, dann starten Sie das Go Backend neu.
In der dev-Umgebung wird das Frontend von yarn run
auf Port 7001 ausgeführt, also wenn Sie zur Casdoor-Anmeldeseite gehen möchten, müssen Sie den Casdoor-Link als http://localhost:7001 einstellen.
In der prod-Umgebung werden die Frontend-Dateien zuerst von yarn build
erstellt und auf Port 8000 bereitgestellt, also wenn Sie zur Casdoor-Anmeldeseite gehen möchten, müssen Sie den Casdoor-Link als https://your-casdoor-url.com:8000 einstellen (Wenn Sie einen Reverse-Proxy verwenden, müssen Sie den Link als Ihre Domain einstellen).
Nehmen Sie unser offizielles Forum Casnode als Beispiel
Casnode verwendet Casdoor zur Authentifizierung.
Wenn wir Casnode in der dev-Umgebung testen, setzen wir die serverUrl
als http://localhost:7001, also wenn wir die Anmelde- und Registrierungsfunktion mit Casdoor testen, wird es zu localhost 7001 gehen, welches der Casdoor-Port ist.
Und wenn wir Casnode in die prod-Umgebung bringen, setzen wir die serverUrl
als https://door.casdoor.com, so dass Benutzer sich mit Casdoor anmelden oder registrieren können.