Zum Hauptinhalt springen

Serverinstallation

Anforderungen

Betriebssystem

Alle wichtigen Betriebssysteme, einschließlich Windows, Linux und macOS, werden unterstützt.

Umgebung

Info

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.

Vorsicht

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.

NameBeschreibungSpracheQuellcode
FrontendWeb-Frontend-Benutzeroberfläche für CasdoorJavaScript + Reacthttps://github.com/casdoor/casdoor/tree/master/web
BackendRESTful-API-Backend für CasdoorGolang + Beego + XORMhttps://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
Für PostgreSQL stellen Sie sicher, dass 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 auf dev oder prod gesetzt werden.
  • SessionOn bestimmt, ob die Sitzung aktiviert ist und ist standardmäßig aktiviert.
  • driverName, dataSourceName und dbName 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 Sie localhost:6379 verwenden. Wenn ein Redis-Passwort aktiviert ist, verwenden Sie redis.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 oder Google, GitHub, Facebook, LinkedIn oder Steam 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überschrift Accept-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
Tipp

Um einen anderen Port zu verwenden, bearbeiten Sie bitte conf/app.conf und ändern Sie httpport, dann starten Sie das Go Backend neu.

Casdoor Port-Details

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.

Casnode-Beispiel