discord-bot/restic/README.md

87 lines
1.8 KiB
Markdown
Raw Permalink Normal View History

2025-12-16 21:13:39 +09:00
# 📦 Restic Backup Discord Bot
restic 백업 결과를 디스코드로 알려주는 봇입니다.
![Python](https://img.shields.io/badge/Python-3.14-3776AB?logo=python)
![Discord](https://img.shields.io/badge/Discord.py-2.6-5865F2?logo=discord)
---
## ✨ 주요 기능
-**성공 알림** - 백업 성공 시 지정 채널로 알림
-**실패 알림** - 백업 실패 시 별도 채널로 알림
- 📊 **상세 정보** - 파일 수, 크기, 소요 시간, 스냅샷 ID 표시
---
## 🛠️ 기술 스택
| 기술 | 설명 |
| -------------- | ---------------- |
| **Python** | 런타임 |
| **discord.py** | 디스코드 API |
| **aiohttp** | 비동기 HTTP 서버 |
---
## 📡 웹훅 엔드포인트
| 엔드포인트 | 설명 |
| --------------- | -------------- |
| `POST /success` | 백업 성공 알림 |
| `POST /failure` | 백업 실패 알림 |
### 요청 형식
**성공:**
```json
{
"files": "1382",
"size": "316.110 MiB",
"duration": "0:01",
"snapshot_id": "8042b460"
}
```
**실패:**
```json
{
"error": "에러 메시지"
}
```
---
## 🚀 실행 방법
```bash
docker compose up -d --build
```
---
## ⚙️ 환경 변수
| 변수 | 설명 |
| ---------------------------- | ----------------- |
| `DISCORD_BOT_TOKEN` | 디스코드 봇 토큰 |
| `DISCORD_SUCCESS_CHANNEL_ID` | 성공 알림 채널 ID |
| `DISCORD_FAILURE_CHANNEL_ID` | 실패 알림 채널 ID |
| `WEBHOOK_PORT` | 웹훅 포트 (5001) |
---
## 📁 구조
```
restic/
├── main.py # 봇 메인 로직
├── docker-compose.yml # Docker Compose 설정
├── Dockerfile # 컨테이너 빌드
├── requirements.txt # Python 의존성
└── .env # 환경 변수
```