# πŸ“¦ 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 # ν™˜κ²½ λ³€μˆ˜ ```