기말고사가 끝나고 학교에서 많은 시간이 자유시간이 되었다.
친구들끼리 끄투를 하자고 하고 senWIFI_free를 연결해서 끄투"들"을 들어갔는데? 아니 다 막혀있었다;;
임시방편으로 오늘 프로그래밍 시간에는 친구의 핫스팟을 빌려서 끄투를 했는데 계속 친구 핫스팟으로 할수도 없는 노릇이었다.
내가 쓸건데 대역폭이 느려진다고!!
그래서 이번에 우분투 서버를 설치한 겸, 서버에다가 끄투서버를 열기로 하였다.
먼저 서버를 열라면 자료가 필요하다.
끄투는 끄투1,2 본섭이 서비스 종료한 이후 프리서버를 열수 있는 소스가 github에 공개되어 있다.
나는 이 깃허브 레포지토리를 사용해서 서버를 열려고 한다.
먼저 레포지토리를 아래의 명령어로 /var/kkutu 경로에 클론해주었다.
sudo git clone https://github.com/JJoriping/KKuTu.git

해당 경로에 git 레포지토리가 잘 복사되어 있는것을 확인할 수 있다.

다음으로 node.js와 npm을 설치해줄 차례다.
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
위에 명령어를 입력해서 node.js와 npm을 설치해주었다.

다음으로 아래 명령어를 입력해서 grunt를 설치해준다.
sudo npm install -g grunt grunt-cli

다음으로 아래 명령어로 PostgreSQL과 psql을 설치해준다.
sudo apt install postgresql postgresql-client

다음으로 db.sql을 데이터베이스에 입력시켜주어야 해서 아래의 명령어를 입력해주었다.
sudo -u postgres psql --quiet main < ./db.sql

다만 main 데이터베이스가 생성되지 않아서 아래의 명령어로 데이터베이스를 생성후 다시 명령어를 입력했다.
sudo -u postgres createdb main

다음으로 셸 스크립트 ./server-setup.bat 를 실행시킨다.
근데 배치파일은 윈도우에서 쓰는건데 과연 이게 리눅스에서 실행이 될까? 싶었는데 아래 명령어로 작성하니 잘 실행이 되었다!
안에 내용물이 실행할수 있는거면 확장자가 어떻든 실행이 되는것 같다.
sudo bash ./server-setup.bat


그 다음 절차가

이런데 아니 Web이란 폴더가 없다..
...다시보니 Server경로안에 있는거다..
암튼 Server경로에서 저 두 명령어를 실행시켜 주었다.
node lib/Game/cluster.js 0 1
node lib/Web/cluster.js 1

아니 global.json 왜 없어
라고 생각한 찰나


끄투 서버 4번째 여는건데 그 4번마다 이거 항상 까먹음;;
아무튼 global.int.json과 auth.inc.json을 복사해준후 파일명에서 .inc를 빼주고 내용을 수정해준다.
sudo cp global.inc.json global.json
sudo cp auth.inc.json auth.json
위에 명령어로 .inc를 제거한 파일명으로 파일을 복사할수 있다.
global.json과 auth.json을 수정해주고 다시 위에 명령어를 실행해주었다.
하던중 redis서버가 설치되지 않은 문제가 있어서 아래 명령어로 redis를 설치후 실행해주었다.
sudo apt-get install redis-server
또한 Screen명령어를 이용해서 따로 터미널을 만들어주고 실행해주었다.

이건 또 무슨 문제일까..
아 sudo 빼먹었구나! 그래서 80포트를 못쓴거고...
sudo는 중요하다.
암튼 sudo를 붙여서 다시 실행해주었다.

잘 실행이 된것 같으니 웹으로 접속해본다.
접속이 매우 잘된다. :>

로그인도 잘 되는 모습을 볼수 있다.


게임도 가능은 한것처럼 보이나 사전부분에서 약간 문제가 있는것 같다.
해당 기능은 추후 고쳐봐야겠다.

일단 내일 학교에서 친구들이랑 해봐야겠다. :>
근데 방학 3일남았다 ㅋㅋ
아무튼 한번쯤은 나만의 끄투 프리서버를 열어보는것도 좋은 경험인것 같다.
다만... 그냥 끄투코리아나 끄투리오를 하는걸 추천한다..
이 글은 내가 개발이나 서버를 배우면서 기록하는 글이다. 따라서 이 글에 잘못된 정보가 있을 수 있으며 이 글에서 질문을 해도 제대로 된 답변을 못받을 가능성이 매우 크다.
낚아보기
