Casdoor is a UI-first centralized authentication / Single-Sign-On (SSO) platform based on OAuth 2.0 / OIDC.
Casdoor is the authentication server. It serves both the web UI and the login requests from the application users.
- Deployed site: https://door.casbin.com/
- Source code: https://github.com/casbin/casdoor (this repo)
Global admin login:
- Username:
admin
- Password:
123
Casbin-OA is one of our applications that use Casdoor as authentication.
- Deployed site: https://oa.casbin.com/
- Source code: https://github.com/casbin/casbin-oa
Casdoor contains 2 parts:
Name | Description | Language | Source code |
---|---|---|---|
Frontend | Web frontend UI for Casdoor | Javascript + React | https://github.com/casbin/casdoor/tree/master/web |
Backend | RESTful API backend for Casdoor | Golang + Beego + MySQL | https://github.com/casbin/casdoor |
-
Get code via
go get
:go get github.com/casbin/casdoor
or
git clone
:git clone https://github.com/casbin/casdoor
-
Run backend (in port 8000):
go run main.go
-
Run frontend (in the same machine's port 7001):
cd web ## npm npm install npm run start ## yarn yarn install yarn run start
-
Open browser:
-
build static pages:
cd web ## npm npm run build ## yarn yarn run build ## back to casdoor directory cd ..
-
build and run go code:
go build ./casdoor
Now, Casdoor is running on port 8000. You can access Casdoor pages directly in your browser, or you can setup a reverse proxy to hold your domain name, SSL, etc.
-
Setup database (MySQL):
Casdoor will store its users, nodes and topics informations in a MySQL database named:
casdoor
, will create it if not existed. The DB connection string can be specified at: https://github.com/casbin/casdoor/blob/master/conf/app.confdb = mysql dataSourceName = root:123@tcp(localhost:3306)/ dbName = casdoor
-
Setup database (Postgres):
Since we must choose a database when opening Postgres with xorm, you should prepare a database manually before running Casdoor. Let's assume that you have already prepared a database called
casdoor
, then you should specifyapp.conf
like this:db = postgres dataSourceName = "user=postgres password=xxx sslmode=disable dbname=" dbName = casdoor
Please notice: You can add Postgres parameters in
dataSourceName
, but please make sure thatdataSourceName
ends withdbname=
. Or database adapter may crash when you launch Casdoor.Casdoor uses XORM to connect to DB, so all DBs supported by XORM can also be used.
-
Github corner
We added a Github icon in the upper right corner, linking to your Github repository address. You could set
ShowGithubCorner
to hidden it.Configuration (
web/src/commo/Conf.js
):export const ShowGithubCorner = true export const GithubRepo = "https://github.com/casbin/casdoor" //your github repository
-
OSS conf
We use an OSS to store and provide user avatars. You must modify the file
conf/oss.conf
to tell the backend your OSS info. For OSS providers, we support Aliyun([aliyun]
), awss3([s3]
) now.[provider] accessId = id accessKey = key bucket = bucket endpoint = endpoint
Please fill out this conf correctly, or the avatar server won't work!