글 작성자: drizzle_
728x90

이 글에서는 라즈베리파이에 디스코드 봇을 호스팅하지만, 우분투에서도 가능합니다. 라즈베리파이가 없거나 설치되어 있는 서버컴퓨터(또는 VPS)가 없는 경우 여기를 눌러 VPS총정리 글을참고해주세요.

 

이 글에서는 라즈비안(라즈베리파이OS) Lite기준으로 설명할 것 입니다. 버전에 따라 설치되어 있거나 미러 서버에 있는 라이브러리가 다르므로 참고해주세요.

 

글 순서(클릭해서 이동)


node.js 호스팅

이 글에서는 SSH접속등은 생략하고 라즈베리파이에 어떤 방법으로든 접속했다는 전제 하에 진행됩니다.

패키지 업데이트

sudo apt-get update -y

미러 서버에 있는 패키지 리스트가 업데이트 되어 404에러가 날 것을 대비해 패키지 리스트들을 업데이트 해준다. 미러 서버는 속도등을 고려해 카이스트로 변경할것을 추천한다.

node.js설치

sudo apt-get install nodejs -y

아마 이 커맨드를 실행하여 node.js를 설치하였을때는 8.0.X버전이 설치 되었을 것 이다.(14.x 또는 12.x가 설치되었다면 pm2설치 단계로 넘어가면 된다.)

 

다른 버전의 Node.js를 설치하려면 NodeSource에서 관리하는 PPA(개인 패키지 아카이브)를 사용해야한다. 이러한 PPA에는 공식 Ubuntu 저장소보다 더 많은 Node.js 버전이 제공된다. 노드.js v10, v12, v13 및 v14는 작성 시점에서 사용할 수 있다.

우선, PPA의 패키지에 접근하기 위해 PPA를 설치할 것이다. 홈 디렉토리에서 컬을 사용하여 기본 버전의 설치 스크립트를 검색하고 14.x를 쓰고 싶은 버전으로 바꾼다.(안바꾸는거 추천)

curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh

 

사용 가능한 버전에 대한 자세한 내용은 NodeSource 를 참조하면 된다.

 

스크립트가 다운 되었다면 아래 커맨드를 실행하여 PPA가 구성에 추가되고 로컬 패키지 캐시가 자동으로 업데이트되게 한다. 이제 이전 섹션에서와 같은 방법으로 Node.js 패키지를 설치할 수 있다.

sudo bash nodesource_setup.sh

위 작업이 완료 되었다면 아래 커맨드로 node.js를 설치한다.

sudo apt install nodejs

원하는 버전이 설치되었는지 확인하려면 아래 커맨드를 실행한다.

node -v

 

Output

v14.2.0

 

NodeSource nodejs 패키지는 노드 바이너리와 npm을 모두 포함하고 있으므로 npm을 별도로 설치할 필요가 없다.

pm2설치

sudo npm i pm2 -g

pm2는 프로세스가 죽어도 다시 살려주는 프로세스이다. 위 커맨드를 실행하여 pm2를 글로벌(-g)로 설치한다.

설치가 된 것을 확인하기 위해 아래 커맨드를 실행한다.

sudo pm2

이제 봇 소스를 라즈베리파이로 업로드하면 된다.

SFTP를 이용해 봇 파일 업로드

ssh를 이용하게 설정해야합니다. 라즈베리파이 SD카드를 뽑아 컴퓨터에 꼽고, 생기는 USB드라이브에 ssh라는 이름의 파일을 만들면 ssh가 사용 설정됩니다.

 

먼저, Filezilla를 다운로드한다.

여기를 눌러 Filezilla 홈페이지에 접속한다.

설치 파일을 실행한다.

백신등을 설치하냐고 묻는데 설치 박스 체크를 해제하고 Filezilla만 설치한다.

 

파이의 비밀번호는 별도로 설정하지 않았다면 raspberry이다.

 

원하는 폴더를 만들고 해당 폴더에 봇 파일을 업로드한다.(node_modules제외)

24시간 호스팅

cd 아까생성한 폴더 이름
sudo npm i
sudo pm2 start 봇 메인 파일 이름.js

봇 메인 파일 이름은 node (이름) 으로 실행했을 때 이름 칸에 들어가는 것 이다.

 

sudo pm2 ls

봇을 재시작 할 때는 아래 커맨드를 실행하면 된다.

sudo pm2 restart 0
728x90
Email: b1@yeonw.me / 여기를 눌러 다른 연락 수단들 알아보기