Zum Hauptinhalt springen

Server installation

Anforderungen

Operating system

Windows, Linux, and macOS are supported.

Build environment

Use Yarn 1.x for the frontend; NPM can cause UI styling issues (casdoor#294). :::
If Go dependencies fail to download, set GOPROXY (e.g. https://goproxy.cn/). :::

Datenbank

Casdoor uses XORM and supports these databases (Xorm drivers):

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

Herunterladen

Pre-built binaries

GitHub Releases provide binaries for Linux (x86_64, arm64), macOS (x86_64, arm64), and Windows (x86_64, arm64). Extract the archive and run the casdoor binary. It includes the web frontend and a sample conf/app.conf; set the database connection before first run (see Configure database).

Quick start with binaries
# Linux/macOS example
tar -xzf casdoor_Linux_x86_64.tar.gz
cd casdoor_Linux_x86_64
# Edit conf/app.conf with your database settings
./casdoor

Build from source

Repository: https://github.com/casdoor/casdoor (backend and frontend in one repo).

PartBeschreibungStack
FrontendWeb UIJavaScript + React
BackendREST APIGo + Beego + XORM

Clone the repo (Go Modules are used):

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

Konfiguration

Configure database

Casdoor supports MySQL, MariaDB, PostgreSQL, CockroachDB, SQL Server, Oracle, SQLite3, and TiDB. Default config uses MySQL.

MySQL

Create a database named casdoor if it does not exist. Set the connection in conf/app.conf (see app.conf):

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

PostgreSQL

Create a database (e.g. casdoor) before running; xorm requires it in the connection string. Example app.conf:

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
Für CockroachDB, denken Sie daran, serial_normalization=virtual_sequence zum dataSourceName hinzuzufügen, wie im obigen Beispiel gezeigt. Andernfalls erhalten Sie einen Fehler bezüglich einer vorhandenen Datenbank, wann immer der Dienst startet oder neu startet. Beachten Sie, dass dies hinzugefügt werden muss, bevor die Datenbank erstellt wird. :::

SQLite3

Um SQLite3 zu konfigurieren, sollten Sie app.conf so angeben:

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

Config files

Backend and frontend options are documented in Configuration. For a minimal setup, set driverName and dataSourceName in conf/app.conf (see Configure database).

Ausführen

Development mode

Backend

Start the Go backend (default port 8000):

go run main.go

Then start the frontend.

Frontend

The frontend is a Create React App project and runs on port 7001 by default:

cd web
yarn install
yarn start

Open http://localhost:7001 and sign in as built-in/admin / 123.

Production mode

Backend

Build and run the binary:

Für Linux:

go build
./casdoor

Für Windows:

go build
casdoor.exe

Frontend

Build static assets:

cd web
yarn install
yarn build

Open http://localhost:8000 and sign in as built-in/admin / 123.

To use a different port, set httpport in conf/app.conf and restart the backend. :::
Ports and URLs
  • Dev: Frontend runs on port 7001 (yarn start). Point apps at http://localhost:7001 for the Casdoor login page.
  • Prod: Frontend is built and served by the backend on port 8000. Use https://your-casdoor-domain (or your reverse proxy URL). :::

Example: Casnode uses Casdoor. In dev, set serverUrl to http://localhost:7001; in prod, set it to https://door.casdoor.com.

Casnode-Beispiel