메인 콘텐츠로 건너뛰기

서버 설치

요구 사항

운영 체제

Windows, Linux, macOS를 포함한 모든 주요 운영 체제가 지원됩니다.

환경

정보

Casdoor 프론트엔드를 실행하고 빌드하는 데 Yarn 1.x를 사용하는 것을 강력히 권장합니다. NPM을 사용하면 UI 스타일링 문제가 발생할 수 있습니다. 자세한 내용은 다음을 참조하십시오: casdoor#294.

주의

네트워크가 Go 종속성 패키지를 직접 동기화하는 데 실패하면, GOPROXY 환경 변수를 설정하여 Go 프록시를 사용해야 합니다. 다음을 사용하는 것을 강력히 권장합니다: https://goproxy.cn/

데이터베이스

Casdoor는 데이터베이스와 통신하기 위해 XORM을 사용합니다. Xorm Drivers Support를 기반으로, Casdoor는 현재 다음 데이터베이스를 지원합니다:

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

다운로드

Casdoor의 소스 코드는 GitHub에 호스팅되어 있습니다: https://github.com/casdoor/casdoor. Go 백엔드 코드와 React 프론트엔드 코드는 단일 저장소에 포함되어 있습니다.

이름설명언어소스 코드
프론트엔드Casdoor을 위한 웹 프론트엔드 UIJavaScript + Reacthttps://github.com/casdoor/casdoor/tree/master/web
백엔드Casdoor을 위한 RESTful API 백엔드Golang + Beego + XORMhttps://github.com/casdoor/casdoor

Casdoor는 Go Modules를 지원합니다. 코드를 다운로드하려면 git을 사용하여 코드를 복제하면 됩니다:

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

구성

데이터베이스 구성

Casdoor는 MySQL, MSSQL, SQLite3, PostgreSQL을 지원합니다. 기본적으로, Casdoor는 MySQL을 사용합니다.

MySQL

Casdoor는 사용자, 노드, 토픽 정보를 casdoor라는 MySQL 데이터베이스에 저장합니다. 데이터베이스가 존재하지 않으면 수동으로 생성해야 합니다. DB 연결 문자열은 다음 위치에서 지정할 수 있습니다: https://github.com/casdoor/casdoor/blob/master/conf/app.conf

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

PostgreSQL

Casdoor를 실행하기 전에, xorm으로 Postgres를 열 때 데이터베이스를 선택해야 하므로 PostgreSQL용 데이터베이스를 수동으로 준비해야 합니다.

이미 casdoor라는 데이터베이스를 준비했다고 가정하면, app.conf를 다음과 같이 지정해야 합니다:

driverName = postgres
dataSourceName = "user=postgres password=postgres host=localhost port=5432 sslmode=disable dbname=casdoor"
dbName = casdoor
PostgreSQL의 경우, dataSourceName에 비어 있지 않은 dbName이 있어야 하며, 위의 예제에서 보여주는 것처럼 데이터베이스 이름을 dbname 필드에도 복제해야 합니다. :::

CockroachDB

CockroachDB는 PostgreSQL 드라이버와 함께 사용할 수도 있으며, PostgreSQL과 동일한 구성을 가지고 있습니다.

driverName = postgres
dataSourceName = "user=postgres password=postgres host=localhost port=5432 sslmode=disable dbname=casdoor serial_normalization=virtual_sequence"
dbName = casdoor

SQLite3

SQLite3를 구성하려면 다음과 같이 app.conf를 지정해야 합니다:

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

Ini 파일을 통해

Casdoor는 단일 파일을 통해 구성할 수 있습니다: conf/app.conf, 기본적으로 다음과 같은 내용을 포함하고 있습니다:

appname = casdoor
httpport = 8000
runmode = dev
SessionOn = true
copyrequestbody = true
driverName = mysql
dataSourceName = root:123456@tcp(localhost:3306)/
dbName = casdoor
tableNamePrefix =
showSql = false
redisEndpoint =
defaultStorageProvider =
isCloudIntranet = false
authState = "casdoor"
socks5Proxy = "127.0.0.1:10808"
verificationCodeTimeout = 10
initScore = 2000
logPostOnly = true
origin = "https://door.casdoor.com"
staticBaseUrl = "https://cdn.casbin.org"
enableGzip = true
  • appname은 애플리케이션 이름으로, 현재 실질적인 용도가 없습니다.
  • httpport는 백엔드 애플리케이션이 수신 대기 중인 포트입니다.
  • runmodedev 또는 prod로 설정할 수 있습니다.
  • SessionOn은 세션을 활성화할지 결정하며 기본적으로 활성화되어 있습니다.
  • driverName, dataSourceName, dbName은 이전에 소개되었습니다. 자세한 내용은 데이터베이스 구성을 참조하십시오.
  • verificationCodeTimeout은 인증 코드의 만료 시간을 설정합니다. 만료 후에는 사용자가 다시 획득해야 합니다.

초보자인 경우, 데이터베이스에 따라 driverNamedataSourceName 두 항목만 수정하면 됩니다. 이 데이터베이스는 Casdoor가 사용자, 조직, 애플리케이션을 포함한 모든 데이터를 저장하는 데 사용됩니다.

  • tableNamePrefix는 어댑터를 사용할 때 테이블의 접두사입니다.
  • showSql은 로그 수준이 INFO보다 큰 경우 로거에 SQL 문을 표시할지 여부를 결정합니다.
  • redisEndpoint는 Beego 세션 저장소에서 사용하는 Redis 엔드포인트입니다. 이 매개변수가 비어 있으면 세션 데이터는 ./tmp 폴더에 파일로 로컬에 저장됩니다. Redis를 Beego 세션 저장소로 사용하려면 값은 다음과 같이 될 것입니다: redis.example.com:6379. Redis가 로컬에 배포된 경우 localhost:6379를 사용할 수 있습니다. Redis 비밀번호가 활성화된 경우, redis.example.com:6379,db,password를 사용하십시오. 자세한 내용은 다음을 참조하십시오: https://github.com/beego/beedoc/blob/master/en-US/module/session.md#saving-provider-config.
  • defaultStorageProvider는 기본 파일 저장 서비스 이름입니다. 아바타 업로드와 같은 파일 저장 서비스를 사용해야 하는 경우, 저장 공급자를 설정하고 애플리케이션에 적용해야 합니다. 자세한 내용은 저장소를 참조하십시오.
  • isCloudIntranet는 공급자 엔드포인트가 내부 네트워크 엔드포인트인지 여부를 식별하는 데 사용됩니다.
  • authState는 인증 애플리케이션 이름입니다. 이 매개변수는 로그인 시 확인됩니다.
  • socks5Proxy는 SOCKS 프록시 서버 IP 주소입니다. 프록시 포트를 설정하십시오. 왜냐하면 Google 관련 서비스를 사용하거나 Google, GitHub, Facebook, LinkedIn, Steam을 OAuth 공급자로 사용하는 경우 일부 지역에서 네트워크에 의해 제한될 수 있기 때문입니다.
  • initScore는 각 사용자의 초기 점수입니다. 각 사용자는 점수 속성을 가지고 있습니다. 점수는 Casnode에서 사용되며 Casdoor에서는 아무 것도 제어하지 않습니다.
  • logPostOnly는 기록을 추가하기 위해 post 메서드만 사용할지 여부를 결정하는 데 사용됩니다.
  • origin은 원래의 백엔드 도메인 이름입니다.
  • staticBaseUrl은 시스템이 데이터베이스를 초기화할 때 사용하는 정적 이미지의 주소입니다.
  • enableGzip은 요청 헤더에 Accept-Encoding=gzip이 포함되어 있으면 gzip 인코딩으로 수락하고 응답합니다.

환경 변수를 통해

위에서 언급한 ini 파일에 Casdoor가 정의한 모든 구성 항목은 환경 변수를 통해 구성할 수 있으며, 일부 beego 구성 항목(httpport, appname)도 마찬가지입니다.

예를 들어, Casdoor를 시작하려고 할 때 환경 변수를 통해 구성을 전달하기 위해 다음과 같은 것을 사용할 수 있습니다:

appname=casbin go run main.go

또한, export 파생물도 가능한 방법입니다. 환경 변수의 이름은 ini 파일에서 사용하려는 이름과 정확히 일치해야 합니다.

참고: 환경 변수의 구성은 ini 파일의 구성을 재정의할 수 있습니다.

실행

현재 시작하는 두 가지 방법이 있으며, 상황에 따라 하나를 선택할 수 있습니다.

개발 모드

백엔드

Casdoor의 Go 백엔드는 기본적으로 8000 포트에서 실행됩니다. 다음 명령을 사용하여 Go 백엔드를 시작할 수 있습니다:

go run main.go

서버가 성공적으로 실행되면 프론트엔드 부분을 시작할 수 있습니다.

프론트엔드

Casdoor의 프론트엔드는 매우 클래식한 Create-React-App (CRA) 프로젝트입니다. 기본적으로 7001 포트에서 실행됩니다. 다음 명령을 사용하여 프론트엔드를 실행하세요:

cd web
yarn install
yarn start

브라우저에서 http://localhost:7001을 방문하세요. 기본 전역 관리자 계정인 built-in/admin으로 Casdoor 대시보드에 로그인하세요.

admin
123

생산 모드

백엔드

Casdoor Go 백엔드 코드를 실행 가능한 파일로 빌드하고 시작하세요.

리눅스용:

go build
./casdoor

윈도우용:

go build
casdoor.exe

프론트엔드

Casdoor 프론트엔드 코드를 정적 리소스(.html, .js, .css 파일)로 빌드하세요:

cd web
yarn install
yarn build

브라우저에서 http://localhost:8000을 방문하세요. 기본 전역 관리자 계정인 built-in/admin으로 Casdoor 대시보드에 로그인하세요.

admin
123

다른 포트를 사용하려면 conf/app.conf를 편집하고 httpport를 수정한 다음 Go 백엔드를 다시 시작하세요.

Casdoor 포트 세부 정보

dev 환경에서 프론트엔드는 7001 포트에서 yarn run으로 실행되므로 Casdoor 로그인 페이지로 이동하려면 Casdoor 링크를 http://localhost:7001로 설정해야 합니다.

prod 환경에서 프론트엔드 파일은 먼저 yarn build에 의해 빌드되고 8000 포트에서 제공되므로 Casdoor 로그인 페이지로 이동하려면 Casdoor 링크를 https://your-casdoor-url.com:8000로 설정해야 합니다(리버스 프록시를 사용하는 경우 링크를 당신의 도메인으로 설정해야 합니다).

우리의 공식 포럼 Casnode를 예로 들어보겠습니다

Casnode는 Casdoor를 사용하여 인증을 처리합니다.

dev 환경에서 Casnode를 테스트할 때, 우리는 serverUrlhttp://localhost:7001로 설정하므로, 우리가 Casdoor를 사용하여 로그인 및 가입 기능을 테스트할 때, 이는 Casdoor 포트인 localhost 7001로 이동할 것입니다.

그리고 우리가 Casnode를 prod 환경에 넣을 때, 우리는 serverUrlhttps://door.casdoor.com로 설정하므로, 사용자는 Casdoor를 사용하여 로그인 또는 가입할 수 있습니다.

Casnode 예제