GithubHelp home page GithubHelp logo

wujianming / casdoor Goto Github PK

View Code? Open in Web Editor NEW

This project forked from casdoor/casdoor

0.0 1.0 0.0 6.68 MB

An Identity and Access Management (IAM) / Single-Sign-On (SSO) platform with web UI supporting OAuth 2.0, OIDC, SAML and CAS, QQ group: 645200447

Home Page: https://casdoor.org

License: Apache License 2.0

Go 97.41% HTML 0.96% CSS 0.16% Less 0.20% Dockerfile 0.21% Makefile 0.69% Smarty 0.30% Shell 0.07%

casdoor's Introduction

đŸ“Ļ⚡ī¸ Casdoor

A UI-first centralized authentication / Single-Sign-On (SSO) platform based on OAuth 2.0 / OIDC.

semantic-release docker pull casbin/casdoor GitHub Workflow Status (branch) GitHub Release Docker Image Version (latest semver)

Go Report Card license GitHub issues GitHub stars GitHub forks Crowdin Gitter

Online demo

Deployed site: https://door.casdoor.com/

Quick Start

Run your own casdoor program in a few minutes.

Download

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.

Manual

Simple configuration

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")

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:

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.

Production Mode

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/

Docker

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.

Start casdoor with casbin/casdoor-all-in-one

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!

Start casdoor with casbin/casdoor

modify the configurations

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-run docker-compose up.

Run

docker-compose up

K8S

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/. 🛩ī¸

Detailed documentation

We also provide a complete document as a reference.

Other examples

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.
  • ......

Contribute

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).

I18n notice

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.

License

Apache-2.0

casdoor's People

Contributors

1340908470 avatar abingcbc avatar akkuman avatar chinggg avatar comradeprogrammer avatar dextercai avatar ebreak avatar erikqqy avatar ffyuanda avatar ghostlee avatar github-actions[bot] avatar halozhy avatar hanpenggit avatar henrywangx avatar hsluoyz avatar jianmaikj avatar kofj avatar kuchaguangjie avatar leo220yuyaodog avatar leondevlifelog avatar nekotoxin avatar niko7g avatar nomeguy avatar oranges-eating avatar rafaelgfirmino avatar seriouszyx avatar sh1luo avatar steve0x2a avatar turbodog03 avatar windspiritsr avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤ī¸ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.