디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

자 벌써 디스코드 봇을 만든 지 12회차, 이제 끝낼 때가 되었다 곧 중간고사이기도 하고...

인생게임 봇으로 만들기에는 너무 시간이 오래걸릴 것 같기에 수능 끝난 나에게 맡기도록 하고

지금까지 만들었던 이 봇을 서버에 올려서 돌아가게 만들자

서버 호스팅

지금은 내 노트북에서 코드를 실행하고 있을 때만 봇이 작동된다

봇을 계속 작동시킬려면

내 노트북을 24시간 켜놓거나 라즈베리파이를 따로 24시간 켜놓거나...

이러면 24시간 동안 봇을 돌리기 힘들다

그래서 대신 24시간동안 코드를 실행하고 있어줄 장치가 필요하다

구글의 GCP(Google Cloud Platform)이나 아마존의 AWS(Amazon Web Services)도 있지만

그런 대기업에 올리기에는 봇이 너무 쓰레기 같으니 무료 호스팅을 사용하기로 했다

Heroku

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

Heroku는 Cloud Application Platform으로 그냥 클라우드에서 개발할 수 있게 해주는 서비스다

www.heroku.com/

Cloud Application Platform | Heroku

Heroku is a platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud.

www.heroku.com

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

일단 회원가입을 진행한다 (이메일 인증도 당연히 있다)

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon
디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

로그인하면 이런화면이 나온다

더보기

얘는 그냥 무시하고 Accept

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

Create new app를 클릭

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

대충 이름 짓고 Create app 클릭

파일 추가

1. runtime.txt

이 파일은 이 봇이 어떤 언어로 동작하는지, 즉 뭘로 컴파일해야하는지 알려주는 파일이다.

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

2. requirements.txt

이 파일은 봇을 만들 때 pip를 통해 설치했던 모듈들(discord.py, ydl...)를 알려주는 파일이다.

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

코드에서는 ydl로 import하는데 설치는 youtube_dl인걸 확인하자

3.Procfile

이 파일은 직접적인 컴파일 명령어를 알려주는 파일인 듯 하다

확장자명은 없다

그리고 Procfile 이다

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

위 파일들을 모두 작성한뒤 github에 올려주자

깃허브 연동

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon
디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

코드를 깃허브에 올려두었으니 깃허브를 이용할 예정이다.

깃허브에 로그인한 뒤 heroku에 접근 권한을 부여한다

그리고 사용할 repository를 찾는다

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

다음은 배포 설정

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

아마 코드가 깃허브에서 업데이트 되면 자동으로 반영하는 것 같다

아래 사진처럼 Deploy to Heroku가 초록색이 되었으면 끝이다

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

호스팅

위로 올라가서 Settings 메뉴로 간 뒤 Reveal Config Vars를 클릭한다.

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

KEY에 token를 적고 VALUE에 봇의 토큰값을 입력한다

근데 이렇게 되면 token.txt에 문제가 생기지 않을까...

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

다음은 메뉴에서 Resources를 클릭하고 

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon
디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

이러면 된다고 하던데...

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

설마 token.txt가 문제 생긴건가....

불안한 예상은 빗나가지 않았고 log를 확인해봤다

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

token이 외부에 노출되는 것을 방지하기 위해 token을 분리하고 깃허브에 올리지 않았더니...

일단 새로운 private repository로 코드를 옮기고 다시 위 과정을 반복했다

봇이 온라인이 되었다!

디스코드 봇 호스팅 추천 - diseukodeu bos hoseuting chucheon

여담

약 3달간의 디스코드 봇만들기가 끝났다

아직 만들고 싶은 기능이 산더미 같지만 그래도 고3인데 계속 하고 있기는 힘들 것 같다

간간히 간단한 기능들을 추가할 예정이긴 하나 중간고사 뒤에는 헬테이커 모바일을 다시 건드봐야 하니

사실상 기능 추가는 오래걸릴 것 같다

비록 설명도 제대로 없고 그냥 생각나는대로 써놓은 글이지만 누군가에게는 도움이 됬으면 한다