직접 실행하기 - 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
🔍 실행 확인
- FastAPI 백엔드 확인: http://localhost:9091/docs
- 디스코드에서 봇 초대 및 명령어 테스트
🔐 내부 API 보호 구조
내부 API는 다음 헤더를 통해 보호됩니다:
X-Internal-Request: true
외부 요청은 Nginx에서 자동으로 false
로 변경되며, 직접 접근이 차단됩니다.
🧼 종료 및 정리
# 컨테이너 중지
docker compose down
# 이미지 및 볼륨까지 제거 (주의)
docker compose down --rmi all -v
📌 참고 문서
- Notion Integration 생성: https://developers.notion.com/docs/create-a-notion-integration
- Discord 애플리케이션 설정: https://discord.com/developers/applications
- FastAPI 문서: https://fastapi.tiangolo.com/