디스코드 봇을 디스호스트에 호스팅하는 기본 절차

2026년 1월 9일·3개 메시지

디스코드 봇을 디스호스트에 올릴 때 가장 핵심은 실행 진입점을 명확히 지정하고, 콘솔에서 서비스를 시작하는 과정이다. 여기서는 간단한 예제와 함께 app.py를 메인 파일로 설정하고 콘솔에서 Start 버튼으로 호스팅을 시작하는 방법을 정리한다.

증상

디스코드 봇이 디스호스트에 업로드했음에도 서비스가 시작되지 않거나 아무 동작을 하지 않는 현상. 배포 후 로그에 아무런 출력이 없고 봇이 온라인으로 표시되지 않음.

원인

서비스의 실행 진입점가 올바르지 않거나, 업로드한 코드가 디스호스트에서 자동으로 실행되지 않음. 디스호스트의 기본 진입 파일명이 기대와 다를 경우(예: main.py, bot.py 등) 콘솔에서 Start를 눌러도 아무 동작이 발생하지 않는다.

해결 방법

1단계: 메인 파일을 app.py로 구성

디스호스트의 기본 실행 파일 이름으로 app.py를 사용한다. 리포지토리 루트에 app.py를 두고 봇의 진입점 코드를 넣어라. 예시 최소 코드(Discord.py 기준):

# app.py
import os
import discord
from discord.ext import commands

intents = discord.Intents.default()
bot = commands.Bot(command_prefix="!", intents=intents)

@bot.event
async def on_ready():
    print(f"Logged in as {bot.user}")

# 토큰은 환경변수로 관리
TOKEN = os.getenv("DISCORD_TOKEN")
if not TOKEN:
    raise RuntimeError("환경변수 DISCORD_TOKEN을 설정하세요")

bot.run(TOKEN)

필요한 패키지는 requirements.txt에 명시한다:

discord.py==2.3.2

(사용하는 라이브러리에 따라 버전은 적절히 조정)

2단계: 디스호스트 콘솔에서 시작

  1. 리포지토리를 업로드하거나 소스 파일을 디스호스트에 배치한다.
  2. 루트에 app.py가 존재하는지 확인한다.
  3. 디스호스트 관리 콘솔로 이동하여 환경변수 DISCORD_TOKEN에 봇 토큰을 설정한다.
  4. 콘솔에서 Start 버튼을 눌러 애플리케이션을 실행한다.
  5. 콘솔 로그를 확인해 Logged in as ... 메시지가 출력되는지 확인한다.

추가 팁:

  • 패키지 설치가 필요하면 디스호스트의 빌드/설치 단계에서 pip install -r requirements.txt를 실행하도록 설정한다.
  • 로그에 에러가 나오면 해당 에러 메시지를 기준으로 requirements.txt나 코드 수정 후 다시 Start한다.

마무리

디스호스트에 디스코드 봇을 배포할 때는 실행 진입 파일을 app.py로 통일하고, 콘솔에서 Start 버튼을 눌러 서비스를 시작하면 대부분의 기본 호스팅 문제를 해결할 수 있다.