Deployed site: https://door.casdoor.com/
Run your own casdoor program in a few minutes.
There are two methods, get code via go subcommand get
:
go get github.com/casdoor/casdoor
or git
:
git clone https://github.com/casdoor/casdoor
Finally, change directory:
cd casdoor/
We provide two start up methods for all kinds of users.
Casdoor requires a running Relational database to be operational.Thus you need to modify configuration to point out the location of database.
Edit conf/app.conf
, modify dataSourceName
to correct database info, which follows this format:
username:password@tcp(database_ip:database_port)/
Then create an empty schema (database) named casdoor
in your relational database. After the program runs for the first time, it will automatically create tables in this schema.
You can also edit main.go
, modify false
to true
. It will automatically create the schema (database) named casdoor
in this database.
createDatabase := flag.Bool("createDatabase", false, "true if you need casdoor to create database")
Casdoor provides two run modes, the difference is binary size and user prompt.
Edit conf/app.conf
, set runmode=dev
. Firstly build front-end files:
cd web/ && yarn && yarn run start
❗ A word of caution ❗: Casdoor's front-end is built using yarn. You should use yarn
instead of npm
. It has a potential failure during building the files if you use npm
.
Then build back-end binary file, change directory to root(Relative to casdoor):
go run main.go
That's it! Try to visit http://127.0.0.1:7001/. 🛩️
But make sure you always request the backend port 8000 when you are using SDKs.
Edit conf/app.conf
, set runmode=prod
. Firstly build front-end files:
cd web/ && yarn && yarn run build
Then build back-end binary file, change directory to root(Relative to casdoor):
go build main.go && sudo ./main
Notice, you should visit back-end port, default 8000. Now try to visit http://SERVER_IP:8000/
Casdoor provide 2 kinds of image:
-
casbin/casdoor-all-in-one, in which casdoor binary, a mysql database and all necessary configurations are packed up. This image is for new user to have a trial on casdoor quickly. With this image you can start a casdoor immediately with one single command (or two) without any complex configuration. Note: we DO NOT recommend you to use this image in productive environment
-
casbin/casdoor: normal & graceful casdoor image with only casdoor and environment installed.
This method requires docker and docker-compose to be installed first.
if the image is not pulled, pull it from dockerhub
docker pull casbin/casdoor-all-in-one
Start it with
docker run -p 8000:8000 casbin/casdoor-all-in-one
Now you can visit http://localhost:8000 and have a try. Default account and password is 'admin' and '123'. Go for it!
For the convenience of your first attempt, docker-compose.yml contains commands to start a database via docker.
Thus edit conf/app.conf
to point out the location of database(db:3306), modify dataSourceName
to the fixed content:
dataSourceName = root:123456@tcp(db:3306)/
If you need to modify
conf/app.conf
, you need to re-rundocker-compose up
.
docker-compose up
You could use helm to deploy casdoor in k8s. At first, you should modify the configmap for your application. And then run bellow command to deploy it.
IMG_TAG=latest make deploy
And undeploy it with:
make undeploy
That's it! Try to visit http://localhost:8000/. 🛩️
We also provide a complete document as a reference.
These all use casdoor as a centralized authentication platform.
- Casnode: Next-generation forum software based on React + Golang.
- Casbin-OA: A full-featured OA(Office Assistant) system.
- ......
For casdoor, if you have any questions, you can give Issues, or you can also directly start Pull Requests(but we recommend giving issues first to communicate with the community).
If you are contributing to casdoor, please note that we use Crowdin as translating platform and i18next as translating tool. When you add some words using i18next in the web/
directory, please remember to add what you have added to the web/src/locales/en/data.json
file.