| 요약 | OpenAI GPT-4.1-nano를 활용한 AI 생성 요약과 함께 Discourse 포럼의 새 게시물에 대한 자동 알림을 제공하는 전문 텔레그램 봇 | |
| 저장소 링크 | GitHub - DigneZzZ/webhook_tg_bot · GitHub | |
| 설치 가이드 | README_EN.md |
Webhook Telegram Bot - AI 기반 Discourse 알림
참고: 이는 전통적인 Discourse 플러그인이 아니라 외부 통합 서비스이지만, Discourse 커뮤니티와 이 유용한 도구를 공유할 더 적절한 카테고리를 찾지 못했습니다. 이 봇은 Discourse 포럼과 함께 작동하여 향상된 알림 기능을 제공합니다.
기능
Discourse 통합
-
토픽 및 게시물 생성 이벤트에 대한 웹훅 처리
-
모든 유형의 Discourse 콘텐츠 지원
-
토픽 및 게시물 데이터를 통합된 메시지로 결합
-
보안을 위한 웹훅 서명 검증 (HMAC-SHA256)
AI 콘텐츠 분석
-
지능형 게시물 요약을 위한 OpenAI GPT-4.1-nano 통합
-
HTML 클리닝을 포함한 컨텍스트 인식 콘텐츠 분석
-
다양한 콘텐츠 유형을 위한 특수 템플릿
-
자동 콘텐츠 필터링 및 처리
고급 텔레그램 전달
-
메인 채팅 또는 특정 포럼 토픽으로 알림 전송
-
카테고리 매핑 - 서로 다른 Discourse 카테고리를 서로 다른 텔레그램 토픽으로 라우팅
-
사용자 역할 이모지 접두사 (
관리자,
모더레이터,
스태프 등) -
스마트 HTML 메시지 포맷팅
유연한 필터링 및 제어
-
특정 카테고리 또는 모든 카테고리 모니터링
-
우선순위 시스템을 사용하여 원치 않는 카테고리 무시
-
봇 사용자 차단 (discobot, chatbot, 시스템 사용자)
-
프리미엄 섹션 알림 및 구독 알림
프로덕션 준비 완료
-
헬스 체크를 포함한 Docker 컨테이너화
-
GitHub Actions CI/CD 파이프라인
-
자동 시작을 위한 Systemd 통합
-
포괄적인 로깅 및 모니터링
-
정상적인 종료 및 오류 처리
구성
1. Discourse 웹훅 설정
-
관리자 → API → 웹훅으로 이동
-
새 웹훅 클릭
-
설정:
Payload URL: https://your-domain.com/webhook
Content Type: application/json
Secret: your_webhook_secret
Which events: Topic Event + Post Event
2. 텔레그램 봇 설정
-
@BotFather를 통해 봇 생성
-
그룹/채널의 Chat ID를 가져오기
-
카테고리 라우팅을 위해 포럼 토픽 설정 (선택 사항)
3. 환경 변수 구성
필요한 설정이 포함된 .env 파일을 생성하세요 (전체 구성은 저장소에서 확인).
4. Docker 배포
# 빠른 설치
curl -fsSL https://raw.githubusercontent.com/dignezzz/webhook_tg_bot/main/install.sh -o install.sh
chmod +x install.sh
./install.sh install
5. 리버스 프록시 설정
도메인에서 웹훅을 지원하려면 리버스 프록시(nginx/Apache)를 구성하여 웹훅 요청을 포트 8080의 봇 컨테이너로 라우팅하세요.
nginx 구성 예시:
location /webhook {
proxy_pass http://localhost:8080/webhook;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
설정값
| 이름 | 설명 | 기본값 | 필수 |
|---|---|---|---|
TELEGRAM_BOT_TOKEN |
@BotFather에서 발급받은 봇 토큰 | - | |
TELEGRAM_CHAT_ID |
대상 그룹/채널 ID | - | |
TELEGRAM_THREAD_ID |
메인 토픽 ID (0 = 메인 채팅) | 0 | |
WEBHOOK_SECRET |
서명 검증을 위한 시크릿 키 | - | |
WEBHOOK_PORT |
웹훅 서버 포트 | 8080 | |
WEBHOOK_PATH |
웹훅 엔드포인트 경로 | /webhook | |
OPENAI_API_KEY |
요약을 위한 OpenAI API 키 | - | |
OPENAI_MODEL |
사용할 GPT 모델 | gpt-4.1-nano | |
BASE_URL |
Discourse 포럼 URL | - | |
MONITORED_CATEGORIES |
모니터링할 카테고리 ID (쉼표로 구분) | all | |
IGNORED_CATEGORIES |
무시할 카테고리 ID (쉼표로 구분) | none | |
IGNORED_USERS |
무시할 사용자 ID (쉼표로 구분) | none | |
PREMIUM_CATEGORIES |
프리미엄 카테고리 ID (쉼표로 구분) | none |
카테고리-토픽 매핑 (선택 사항):
TELEGRAM_THREAD_ID_1=123456
THREAD_CATEGORIES_1=1,2,3
TELEGRAM_THREAD_ID_2=234567
THREAD_CATEGORIES_2=4,5
메시지 형식 예시
👤 👑 관리자가 새 게시물을 생성했습니다: Docker 구성 가이드
📋 작성자가 Docker 컨테이너 구성 문제에 대한 해결책을 공유하고 데이터베이스 연결 오류 수정의 단계별 과정을 설명합니다.
🔗 토픽 링크 (https://forum.example.com/t/topic/123)
🏷 태그: #docker, #database, #troubleshooting
💎 이 섹션은 구독 전용으로 제공됩니다.
설치 및 관리
이 봇에는 쉬운 운영을 위한 관리 스크립트가 포함되어 있습니다:
whtg status # 봇 상태 확인
whtg start # 봇 시작
whtg stop # 봇 중지
whtg restart # 봇 재시작
whtg logs # 로그 보기
whtg update # 최신 버전으로 업데이트
whtg uninstall # 봇 제거
언어 지원
참고: 현재 모든 인터페이스 메시지와 문서가 러시아어로 되어 있지만, 영어 지원은 가까운 시일 내에 추가될 예정입니다. 이 봇은 언어와 관계없이 모든 Discourse 포럼에서 작동합니다.
기술 요구 사항
-
Docker 및 Docker Compose
-
웹훅 도메인 지원을 위한 리버스 프록시 (nginx/Apache)
-
OpenAI API 키 (선택 사항, AI 요약을 위해)
-
HTTPS 인증서 (프로덕션 환경 권장)
지원 및 기여
-
GitHub 저장소: GitHub - DigneZzZ/webhook_tg_bot · GitHub
-
이슈: 버그 또는 기능 요청 보고
-
토론: 커뮤니티 토론
라이선스: MIT License