86 lines
1.8 KiB
Markdown
86 lines
1.8 KiB
Markdown
# 📦 Restic Backup Discord Bot
|
|
|
|
restic 백업 결과를 디스코드로 알려주는 봇입니다.
|
|
|
|

|
|

|
|
|
|
---
|
|
|
|
## ✨ 주요 기능
|
|
|
|
- ✅ **성공 알림** - 백업 성공 시 지정 채널로 알림
|
|
- ❌ **실패 알림** - 백업 실패 시 별도 채널로 알림
|
|
- 📊 **상세 정보** - 파일 수, 크기, 소요 시간, 스냅샷 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 # 환경 변수
|
|
```
|