Telegram 봇 Webhook - AI 기반 Discourse 알림

:information_source: 요약 OpenAI GPT-4.1-nano를 활용한 AI 생성 요약과 함께 Discourse 포럼의 새 게시물에 대한 자동 알림을 제공하는 전문 텔레그램 봇
:hammer_and_wrench: 저장소 링크 GitHub - DigneZzZ/webhook_tg_bot · GitHub
:open_book: 설치 가이드 README_EN.md

Webhook Telegram Bot - AI 기반 Discourse 알림

참고: 이는 전통적인 Discourse 플러그인이 아니라 외부 통합 서비스이지만, Discourse 커뮤니티와 이 유용한 도구를 공유할 더 적절한 카테고리를 찾지 못했습니다. 이 봇은 Discourse 포럼과 함께 작동하여 향상된 알림 기능을 제공합니다.

기능

:link: Discourse 통합

  • 토픽 및 게시물 생성 이벤트에 대한 웹훅 처리

  • 모든 유형의 Discourse 콘텐츠 지원

  • 토픽 및 게시물 데이터를 통합된 메시지로 결합

  • 보안을 위한 웹훅 서명 검증 (HMAC-SHA256)

:robot: AI 콘텐츠 분석

  • 지능형 게시물 요약을 위한 OpenAI GPT-4.1-nano 통합

  • HTML 클리닝을 포함한 컨텍스트 인식 콘텐츠 분석

  • 다양한 콘텐츠 유형을 위한 특수 템플릿

  • 자동 콘텐츠 필터링 및 처리

:mobile_phone: 고급 텔레그램 전달

  • 메인 채팅 또는 특정 포럼 토픽으로 알림 전송

  • 카테고리 매핑 - 서로 다른 Discourse 카테고리를 서로 다른 텔레그램 토픽으로 라우팅

  • 사용자 역할 이모지 접두사 (:crown: 관리자, :shield: 모더레이터, :star: 스태프 등)

  • 스마트 HTML 메시지 포맷팅

:bullseye: 유연한 필터링 및 제어

  • 특정 카테고리 또는 모든 카테고리 모니터링

  • 우선순위 시스템을 사용하여 원치 않는 카테고리 무시

  • 봇 사용자 차단 (discobot, chatbot, 시스템 사용자)

  • 프리미엄 섹션 알림 및 구독 알림

:rocket: 프로덕션 준비 완료

  • 헬스 체크를 포함한 Docker 컨테이너화

  • GitHub Actions CI/CD 파이프라인

  • 자동 시작을 위한 Systemd 통합

  • 포괄적인 로깅 및 모니터링

  • 정상적인 종료 및 오류 처리

구성

1. Discourse 웹훅 설정

  1. 관리자 → API → 웹훅으로 이동

  2. 새 웹훅 클릭

  3. 설정:


Payload URL: https://your-domain.com/webhook

Content Type: application/json

Secret: your_webhook_secret

Which events: Topic Event + Post Event

2. 텔레그램 봇 설정

  1. @BotFather를 통해 봇 생성

  2. 그룹/채널의 Chat ID를 가져오기

  3. 카테고리 라우팅을 위해 포럼 토픽 설정 (선택 사항)

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에서 발급받은 봇 토큰 - :white_check_mark:
TELEGRAM_CHAT_ID 대상 그룹/채널 ID - :white_check_mark:
TELEGRAM_THREAD_ID 메인 토픽 ID (0 = 메인 채팅) 0 :cross_mark:
WEBHOOK_SECRET 서명 검증을 위한 시크릿 키 - :white_check_mark:
WEBHOOK_PORT 웹훅 서버 포트 8080 :cross_mark:
WEBHOOK_PATH 웹훅 엔드포인트 경로 /webhook :cross_mark:
OPENAI_API_KEY 요약을 위한 OpenAI API 키 - :cross_mark:
OPENAI_MODEL 사용할 GPT 모델 gpt-4.1-nano :cross_mark:
BASE_URL Discourse 포럼 URL - :cross_mark:
MONITORED_CATEGORIES 모니터링할 카테고리 ID (쉼표로 구분) all :cross_mark:
IGNORED_CATEGORIES 무시할 카테고리 ID (쉼표로 구분) none :cross_mark:
IGNORED_USERS 무시할 사용자 ID (쉼표로 구분) none :cross_mark:
PREMIUM_CATEGORIES 프리미엄 카테고리 ID (쉼표로 구분) none :cross_mark:

카테고리-토픽 매핑 (선택 사항):


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 인증서 (프로덕션 환경 권장)

지원 및 기여

라이선스: MIT License

3개의 좋아요