직접 실행하기 - macqueen0987/NotiPy GitHub Wiki

🐳 Docker로 Notipy 실행하기

이 문서는 Notipy 프로젝트를 Docker를 사용해 로컬 또는 서버에서 실행하는 방법을 안내합니다.
Docker 및 Docker Compose 환경에서 손쉽게 Discord-Notion 알림 시스템을 구축할 수 있습니다.


📦 사전 준비

  • Docker & Docker Compose 설치 필요

  • 레포지토리 클론

    git clone https://github.com/macqueen0987/NotiPy.git
    cd NotiPy
    
  • .env 파일 생성

    cp var.env.example .env
    

⚙️ 환경 변수 설정 (.env)

.env 파일은 프로젝트 실행에 필요한 각종 설정 및 비밀 정보를 담습니다.

✅ 필수 항목

변수명 설명
DISCORD_TOKEN 디스코드 봇 토큰
DISCORD_CLIENT_ID 디스코드 애플리케이션 클라이언트 ID
DISCORD_SECRET 디스코드 애플리케이션 클라이언트 Secret
DISCORD_DEVSERVER 개발용 디스코드 서버 ID
DISCORD_DEVELOPERS 디버깅용 개발자 ID 목록 (쉼표 구분)
DISCORD_OAUTH2_URL 봇 초대용 OAuth2 링크
REDIRECT_URI OAuth 인증 후 리디렉션할 주소
NOTION_TOKEN Notion Integration 토큰
GITHUB_TOKEN GitHub Personal Access Token
MYSQL_USER MySQL 사용자 이름
MYSQL_PASSWORD MySQL 비밀번호
MYSQL_DATABASE 사용할 MySQL 데이터베이스 이름

🟡 선택 항목

변수명 기본값 설명
DISCORD_DEBUG_FILE debug.log 디버그 로그 경로
DISCORD_ERROR_LOG error.log 에러 로그 경로
DISCORD_PORT 9090 디스코드 서버용 FastAPI 포트
BACKEND_PORT 9091 백엔드 API 포트
MYSQL_TCP_PORT 3306 MySQL 포트 번호

🧱 Docker 네트워크 생성

docker network create nginx-proxy
docker network create notipy_backend

🏗️ Docker 이미지 빌드

docker build -t notipy .

📑 docker-compose 실행

전체 컨테이너 실행:

docker compose up -d

필요한 컨테이너만 선택 실행:

docker compose up -d database backend discordbot

로그 확인:

docker compose logs -f

🔍 실행 확인


🔐 내부 API 보호 구조

내부 API는 다음 헤더를 통해 보호됩니다:

X-Internal-Request: true

외부 요청은 Nginx에서 자동으로 false로 변경되며, 직접 접근이 차단됩니다.


🧼 종료 및 정리

# 컨테이너 중지
docker compose down

# 이미지 및 볼륨까지 제거 (주의)
docker compose down --rmi all -v

📌 참고 문서