Casdoor ==== [![Go Report Card](https://goreportcard.com/badge/github.com/casbin/casdoor)](https://goreportcard.com/report/github.com/casbin/casdoor) license [![GitHub issues](https://img.shields.io/github/issues/casbin/casdoor?style=flat-square)](https://github.com/casbin/casdoor/issues) [![GitHub stars](https://img.shields.io/github/stars/casbin/casdoor?style=flat-square)](https://github.com/casbin/casdoor/stargazers) [![GitHub forks](https://img.shields.io/github/forks/casbin/casdoor?style=flat-square)](https://github.com/casbin/casdoor/network) Casdoor is a UI-first centralized authentication / Single-Sign-On (SSO) platform based on OAuth 2.0 / OIDC. ## Online demo Deployed site: https://door.casbin.com/ ## Quick Start Run your own casdoor program in a few minutes:smiley: ### Download There are two methods, get code via go subcommand `get`: ```shell go get github.com/casbin/casdoor ``` or `git`: ```bash git clone https://github.com/casbin/casdoor ``` Finally, change directory: ```bash cd casdoor/ ``` We provide two start up methods for all kinds of users. ### Manual #### Simple configuration Edit `conf/app.conf`, modify `dataSourceName` to correct database info, which follows this format: ```bash username:password@tcp(database_ip:database_port)/ ``` #### Run Casdoor provides two run modes, the difference is binary size and user prompt. ##### Dev Mode Edit `conf/app.conf`, set `runmode=dev`. Firstly build front-end files: ```bash cd web/ && npm install && npm run start ``` Then build back-end binary file, change directory to root(Relative to casdoor): ```bash go run main.go ``` That's it! Try to visit http://127.0.0.1:7001/. :small_airplane: ##### Prod Mode Edit `conf/app.conf`, set `runmode=prod`. Firstly build front-end files: ```bash cd web/ && npm install && npm run build ``` Then build back-end binary file, change directory to root(Relative to casdoor): ```bash go build main.go && sudo ./main ``` > Notice, you should visit back-end port, default 8000. Now try to visit http://127.0.0.1:8000/ ### Docker This method requires [docker](https://docs.docker.com/get-docker/) and [docker-compose](https://docs.docker.com/compose/install/) to be installed first. #### Simple configuration Edit `conf/app.conf`, modify `dataSourceName` to the fixed content: ```bash dataSourceName = root:123@tcp(db:3306)/ ``` > If you need to modify `conf/app.conf`, you need to re-run `docker-compose up`. #### Run Just execute: ```bash docker-compose up ``` That's ## Detailed documentation We also provide a complete [document](https://casdoor.org/) as a reference. ## Other examples These all use casdoor as a centralized authentication platform. - [Casnode](https://github.com/casbin/casnode): Next-generation forum software based on React + Golang. - [Casbin-OA](https://github.com/casbin/casbin-oa): A full-featured OA(Office Assistant) system. - ...... ## Contribute For casdoor, if you have any questions, you can give Issues, and you can also directly Pull Requests(but we recommend give issues first to communicate with the community). In addition to contributing codes to casdoor, uou can also contribute to the [internationalization of casdoor](https://crowdin.com/project/casdoor-web) by translating for casdoor in the language you are good at. Both are welcome! :kissing_smiling_eyes: ## License [Apache-2.0](https://github.com/casbin/casdoor/blob/master/LICENSE)