# Telegram 봇 Webhook - AI 기반 Discourse 알림

**URL:** https://meta.discourse.org/t/webhook-telegram-bot-ai-powered-discourse-notifications/377512
**Category:** Extras
**Created:** [8월 6, 2025, 9:48오전 UTC](https://meta.discourse.org/t/webhook-telegram-bot-ai-powered-discourse-notifications/377512 "2025-08-06T09:48:41Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![DigneZzZ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dignezzz/32/506171_2.png) [@DigneZzZ](https://meta.discourse.org/u/DigneZzZ)
#### Post date: [8월 6, 2025, 9:48오전 UTC](https://meta.discourse.org/t/webhook-telegram-bot-ai-powered-discourse-notifications/377512/1 "2025-08-06T09:48:42Z")

</div>

| | | |
| --- | --- | --- |
| ℹ | **요약** | OpenAI GPT-4.1-nano를 활용한 AI 생성 요약과 함께 Discourse 포럼의 새 게시물에 대한 자동 알림을 제공하는 전문 텔레그램 봇 |
| 🛠 | **저장소 링크** | [GitHub - DigneZzZ/webhook\_tg\_bot · GitHub](https://github.com/dignezzz/webhook_tg_bot) |
| 📖 | **설치 가이드** | [README\_EN.md](https://github.com/dignezzz/webhook_tg_bot/blob/main/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 웹훅 설정**

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

2. **새 웹훅** 클릭

3. 설정:

```plaintext

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

Content Type: application/json

Secret: your_webhook_secret

Which events: Topic Event + Post Event

```

**2. 텔레그램 봇 설정**

1. [@BotFather](https://t.me/botfather)를 통해 봇 생성

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

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

**3. 환경 변수 구성**

필요한 설정이 포함된 `.env` 파일을 생성하세요 (전체 구성은 저장소에서 확인).

**4. Docker 배포**

```bash

# 빠른 설치
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 구성 예시:

```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 | ❌ |

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

```plaintext

TELEGRAM_THREAD_ID_1=123456
THREAD_CATEGORIES_1=1,2,3
TELEGRAM_THREAD_ID_2=234567
THREAD_CATEGORIES_2=4,5

```

### 메시지 형식 예시

```plaintext

👤 👑 관리자가 새 게시물을 생성했습니다: Docker 구성 가이드

📋 작성자가 Docker 컨테이너 구성 문제에 대한 해결책을 공유하고 데이터베이스 연결 오류 수정의 단계별 과정을 설명합니다.

🔗 토픽 링크 (https://forum.example.com/t/topic/123)

🏷 태그: #docker, #database, #troubleshooting

💎 이 섹션은 구독 전용으로 제공됩니다.

```

### 설치 및 관리

이 봇에는 쉬운 운영을 위한 관리 스크립트가 포함되어 있습니다:

```bash

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](https://github.com/dignezzz/webhook_tg_bot)

- **이슈** : [버그 또는 기능 요청 보고](https://github.com/dignezzz/webhook_tg_bot/issues)

- **토론** : [커뮤니티 토론](https://github.com/dignezzz/webhook_tg_bot/discussions)

**라이선스** : MIT License
