간단한 디스코드 봇을 실제 서버에 올리고 운영하는 과정을 정리한다. 깃허브에 소스코드를 올리고, 디스호스트 같은 호스팅 플랫폼에 연결해 자동 배포하는 흐름을 중심으로 설명한다.
증상
로컬에서 잘 동작하는 파이썬 디스코드 봇을 서버에 올리려 할 때, 어디서부터 시작해야 할지 막막하다. 깃허브 업로드 방법, 배포 시 불필요한 파일(.env) 처리, 호스팅 플랫폼에서의 시작 명령 등 초보가 혼란을 겪는다.
원인
배포 절차가 여러 단계(저장소 생성 → 파일 업로드 → 호스팅 플랫폼 연결 → 시작 스크립트 설정)로 구성돼 있고, 실무에서 반드시 제외해야 하는 민감정보(.env 토큰 등) 처리나 시작 커맨드가 환경에 따라 달라져서다. 또한 모바일보다 웹 UI가 배포에 적합하다.
해결 방법
1단계: 깃허브에 코드 저장소 만들기
- 깃허브에서 새 리포지토리 생성.
- 로컬 코드(압축 해제한 디렉토리)를 업로드. 웹에서
Add file→Upload files선택 후 파일을 드래그 앤 드롭하고 Commit changes. - 민감한 환경변수는 절대 레포지토리에 올리지 않는다. 예시 파일로
example.env만 추가하고, 실제 값이 들어간.env파일은.gitignore에 포함시켜 제외한다.
추천 파일/구조 예시:
main.py또는bot.py또는app.pycommands/,cogs/(모듈 분리)requirements.txtREADME.md.gitignoreexample.env(환경변수 템플릿)
2단계: 호스팅 플랫폼에서 봇 추가 및 레포지토리 연결
- 웹 환경에서 디스호스트 같은 호스팅 서비스 접속. 모바일보다 웹 브라우저에서 작업 권장.
- 플랫폼의 ‘봇 추가’ 또는 템플릿 선택 화면에서 새 봇을 생성. 초보면 템플릿을 사용하거나 빈 프로젝트에서 시작 가능.
- 깃허브 레포지토리 URL을 등록해 자동배포 설정. 레포 URL 예시:
https://github.com/your-username/your-repo.git
깃 URL 뒤에 .git 붙여 등록하는 경우가 있음에 유의.
- 플랫폼에서 깃 연동을 통해 푸시할 때마다 서버가 자동으로 업데이트를 당겨 배포하게 설정 가능하다.
3단계: 시작 명령(Startup Command)과 런타임 설정
-
파이썬 봇의 경우 진입 스크립트에 따라 시작 명령을 설정.
main.py가 진입점이면:python main.py또는 시스템이 Python 3을 요구하면python3 main.pybot.py면:python bot.pyapp.py면:python app.py
-
requirements.txt에 필요한 패키지 목록을 명시하면 플랫폼이 설치해 준다. -
환경변수(토큰 등)는 호스팅 플랫폼의 환경 변수 설정(UI)에 등록해서
.env없이 사용한다.
4단계: 배포 후 점검 및 업데이트
- 깃허브에 변경사항을 푸시하면 호스팅 플랫폼에서 자동 배포 로그를 확인한다.
- 오류 발생 시 로그에서 예외와 시작 커맨드를 확인하고, 필요하면 시작 커맨드를 수정하거나 의존성(
requirements.txt)을 보완한다.
마무리
깃허브에 소스코드를 올리고 디스호스트 같은 호스팅 플랫폼에 연동하면 자동 배포와 운영이 편해진다. 민감정보는 저장소에 넣지 말고 플랫폼의 환경변수로 관리하며, 진입 스크립트에 맞는 python/python3 시작 명령을 설정하면 된다.