Post

Project: Cone 서버 구축 설명서 [v0.85.2]

이 페이지는 구축하려는 사람이 어느 정도 개발 지식을 가지고 있다는 가정 하에 작성되어 다소 어렵게 느껴지실 수 있습니다.

서버 구축하기

이 링크에서 프로젝트를 받을 수 있습니다.

다음 명령어를 통해 프로젝트를 복제할 수 있습니다.

1
git clone https://github.com/is2you2/pjcone_server.git

서버 구성

전반적인 서버 구성은 docker-compose.yml 파일에서 관리됩니다. docker-compose 또는 podman-compose 로 구성할 수 있습니다.

사용자가 각 서버의 설정을 바꾼 경우, 필요에 따라 docker-compose.yml 파일이 같이 변경되어야 할 수 있습니다.

SSL 구성

보안 서버/클라이언트 구성은 선택적입니다. 내부망을 사용하는 경우를 대비하여 비보안 상태에서도 앱 사용이 가능하나 브라우저 기본 보안에 따라 일부 기능이 제한될 수 있습니다.

일반적으로 보안 수준이 낮은 곳에서 높은 곳으로의 접근은 허용되나 (http -> https (o))
보안 수준이 높은 곳에서 보안 수준이 낮은 곳으로의 접근은 불허하므로 (https -> http (x))
비보안 사설 서버를 구성할 계획이라면 사설 클라이언트 페이지 구성이 필수가 됩니다.

보안 구성을 위해 도메인 주소를 얻으려면 noip 에서 ddns 발급이 좋습니다. (1개월마다 갱신 필요)

ssl 키를 얻으려면 letsencrypt 로부터 발급 받는 것이 좋습니다. 준비된 certbot/docker-compose.yml 파일을 설정 후 실행하여 얻을 수 있습니다. (3개월마다 갱신 필요, noip 와 겸용 가능)

또는 uploader/custom_ssl.sh 파일을 실행하여 사설 ssl 키쌍을 생성할 수 있습니다.

Nakama

Nakama 는 오픈 소스 게임서버입니다. 회원 관리 및 채널 관리 등 해당 서버가 제공해주는 기능을 사용합니다.

대표적인 백엔드 서비스와의 기술적 비교 문서가 있습니다.

제가 알기로 이 정도 규모의 오픈소스 서버는 Nakama 가 최초인 것으로 알고 있습니다. 개인적으로 추천하는 서버입니다.

설정

서버 설정은 nakama/data/pjcone.yml 폴더에서 구성할 수 있습니다. 구성하려면 서버 설정 페이지를 참조해주세요.

관리자 설정

서버를 켜면 [서버주소]:7350 (또는 지정한 포트) 를 통해 서버 콘솔에 진입할 수 있습니다. 관리자 계정 정보는 설정 파일에서 변경 가능하며 비밀번호를 8자리 이상으로 구성해야 로그인이 가능합니다.

클라이언트 페이지를 통해 자신의 서버를 등록하고, 로그인을 하면 자신의 계정이 사용자 계정 탭에 보여지게 됩니다.

계정 상세에 들어가서 metadata 자리(아래쪽 가장 넓은 입력칸)에 아래 내용을 작성하세요.

1
{ "is_admin": true }

이렇게 하면 다음 로그인부터 서버 관리자 권한을 부여 받아 클라이언트 앱 내 설정 화면에서 서버를 관리할 수 있습니다.

사용자 지정 서버 함수

data/modules/ 폴더 아래 사용자가 직접 서버에 함수를 추가하여 특정 기능을 수행시킬 수 있습니다. 예를 들어, 사용자가 욕설 메시지를 발송했을 때 서버 수준에서 필터링 처리를 할 수 있습니다.

직접 구성을 하려면 서버 프레임워크 페이지를 참조해주세요.

coturn

WebRTC 중계를 돕기 위한 시그널 서버입니다.

설정

data/turnserver.conf 파일에서 설정할 수 있습니다. 자세한 내용은 공식 설정 안내 문서를 참조해주세요.

nodejs

위 두 서버 기능 외 모든 제공하는 서버입니다. 파일 업로드, 비회원 채널, 사설 클라이언트 페이지 등을 위해 운용합니다.

설정

uploader/config.txt 파일에서 수정할 수 있습니다. 설정 내용은 다음과 같습니다.

1
2
3
4
5
6
7
8
9
10
[Operation]
UseSSL=true # SSL 보안 구성 여부 (SSL 키가 준비되어 있어야 합니다)
UseCustomSite=true # 사설 클라이언트 페이지 사용 여부
BlockAnonymous=true # 비회원이 채널을 직접 생성할 수 있습니다. false 상태라면 비회원은 기존 채널에 참여만 가능합니다.

[Port]
SitePort=12000 # 사설 클라이언트 페이지
cdnPort=9001 # 파일 업로드
apachePort=9002 # 파일 게시, 다운로드
squarePort=12013 # 광장 채널

같이 보기

서버를 개설했다면 개인적으로 사용하거나 주변인을 초대하여 사용할 수 있습니다.

  • 개발팀 소통 도구로 사용하기 (추가기능 및 상세 설명서)
This post is licensed under CC BY 4.0 by the author.