افزودن قابلیت ارسال پیامک در صورت موفق یا ناموفق بودن بکاپ + بهروزرسانی README
feat: add SMS notification via IPPanel and update README - Integrated SMS notifications for backup success/failure - Uses IPPanel API for message delivery - Updated README with setup guide, cronjob, and contact info
This commit is contained in:
parent
0d1fa94a5f
commit
0f5d8c295c
125
README.md
125
README.md
@ -1,3 +1,124 @@
|
||||
# gitea-backup
|
||||
عالیه! اینم یه فایل `README.md` کامل برای پروژهی بکاپ Gitea با Docker و ارسال پیامک با IPPanel. این فایل شامل:
|
||||
|
||||
اسکریپت بکاپ خودکار از Gitea و آپلود به FTP
|
||||
* توضیح پروژه
|
||||
* نیازمندیها
|
||||
* نحوهی نصب و اجرا
|
||||
* تنظیمات کرون
|
||||
* بخش ارسال پیامک
|
||||
* اطلاعات تماس برای دریافت پنل SMS
|
||||
|
||||
---
|
||||
|
||||
````markdown
|
||||
# Gitea Backup Script (Docker + FTP + SMS Notification)
|
||||
|
||||
پروژهای برای بکاپگیری خودکار از Gitea نصبشده با Docker، انتقال فایل به سرور دوم از طریق FTP و ارسال پیامک وضعیت بکاپ با استفاده از پنل SMS IPPanel.
|
||||
|
||||
---
|
||||
|
||||
## 📦 نیازمندیها
|
||||
|
||||
- سیستمعامل لینوکسی (Ubuntu ترجیحاً)
|
||||
- نصب `docker` و `docker-compose` (برای اجرای Gitea)
|
||||
- اکانت FTP برای انتقال بکاپ
|
||||
- پنل IPPanel برای ارسال پیامک (اختیاری ولی توصیهشده)
|
||||
- curl، tar، gzip
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ تنظیمات اولیه
|
||||
|
||||
۱. فایل `gitea_backup.sh` را ویرایش کرده و مقادیر زیر را به نیاز خود تنظیم کنید:
|
||||
|
||||
```bash
|
||||
FTP_HOST="ftp.example.com"
|
||||
FTP_USER="ftpuser"
|
||||
FTP_PASS="ftppassword"
|
||||
FTP_DIR="/backups/gitea"
|
||||
|
||||
PHONE="+98912xxxxxxx" # شماره مقصد پیامک
|
||||
API_KEY="your_ippanel_api_key" # کلید API پیامک
|
||||
SENDER="+983000505" # خط ارسال پیامک (از IPPanel)
|
||||
````
|
||||
|
||||
---
|
||||
|
||||
## 🚀 اجرای دستی
|
||||
|
||||
برای اجرای دستی اسکریپت:
|
||||
|
||||
```bash
|
||||
chmod +x gitea_backup.sh
|
||||
./gitea_backup.sh
|
||||
```
|
||||
|
||||
اسکریپت موارد زیر را انجام میدهد:
|
||||
|
||||
* ایجاد فایل بکاپ از `/data` کانتینر Gitea
|
||||
* انتقال فایل به FTP
|
||||
* ارسال پیامک نتیجه موفق یا ناموفق بودن
|
||||
|
||||
---
|
||||
|
||||
## ⏰ اجرای خودکار با Cron
|
||||
|
||||
برای تنظیم بکاپ روزانه، ابتدا ابزار cron را نصب کن:
|
||||
|
||||
```bash
|
||||
apt install cron -y
|
||||
```
|
||||
|
||||
سپس کرونجاب را اضافه کن:
|
||||
|
||||
```bash
|
||||
crontab -e
|
||||
```
|
||||
|
||||
و این خط را اضافه کن (مثلاً ساعت ۲ بامداد هر شب):
|
||||
|
||||
```bash
|
||||
0 2 * * * /root/Git/gitea-backup/gitea_backup.sh >> /var/log/gitea_backup.log 2>&1
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📲 ارسال پیامک با IPPanel
|
||||
|
||||
در صورت موفق یا ناموفق بودن عملیات، اسکریپت یک پیامک با محتوای وضعیت ارسال میکند.
|
||||
|
||||
### مثال محتوای پیامک موفق:
|
||||
|
||||
```
|
||||
✅ Gitea Backup Success - 2025-05-30 02:00
|
||||
```
|
||||
|
||||
### مثال محتوای پیامک ناموفق:
|
||||
|
||||
```
|
||||
❌ Gitea Backup Failed - Could not upload to FTP
|
||||
```
|
||||
|
||||
> برای استفاده از IPPanel نیاز به API Key معتبر دارید.
|
||||
|
||||
---
|
||||
|
||||
## 📞 دریافت پنل پیامکی IPPanel
|
||||
|
||||
اگر پنل پیامکی نیاز دارید، تماس بگیرید:
|
||||
|
||||
* **📱 09303063007**
|
||||
(تأمین پنل رسمی IPPanel با دسترسی به خطوط خدماتی)
|
||||
|
||||
---
|
||||
|
||||
## 👨💻 توسعهدهنده
|
||||
|
||||
با همکاری GPT و تیم حفظ
|
||||
🔗 [https://git.hefzteam.ir](https://git.hefzteam.ir)
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
بگو اگه بخوای این رو مستقیم توی پروژهت کامیت کنیم، یا بخش دیگهای هم اضافه کنیم مثل restore یا encryption.
|
||||
```
|
||||
|
@ -1,8 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
DATE=$(date +"%Y-%m-%d_%H-%M")
|
||||
BACKUP_NAME="gitea_backup_$DATE.tar.gz"
|
||||
BACKUP_TMP="/tmp/$BACKUP_NAME"
|
||||
DATE=$(date +"%Y-%m-%d_%H-%M") #به دست اوردن تاریخ و زمان حال
|
||||
BACKUP_NAME="gitea_backup_$DATE.tar.gz" #نام فایل بکاپ
|
||||
BACKUP_TMP="/tmp/$BACKUP_NAME" #محل ذخیره سازی موقت فایل بکاپ
|
||||
|
||||
echo "[INFO] Creating backup from Docker container..."
|
||||
docker exec gitea tar -czf - /data > "$BACKUP_TMP"
|
||||
@ -10,11 +10,11 @@ if [ $? -ne 0 ]; then
|
||||
echo "[ERROR] Failed to create backup!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FTP_HOST="ftp.example.com"
|
||||
FTP_USER="your_ftp_user"
|
||||
FTP_PASS="your_ftp_pass"
|
||||
FTP_DIR="/backups/gitea"
|
||||
#بخش کافیگ ftp
|
||||
FTP_HOST="ftp.example.com" #آدرس سرور ftp
|
||||
FTP_USER="your_ftp_user" #نام کاربری اکانت ftp
|
||||
FTP_PASS="your_ftp_pass" #رمز اکانت ftp
|
||||
FTP_DIR="/backups/gitea" #آدرس محل ذخیره سازی
|
||||
|
||||
echo "[INFO] Uploading backup to FTP server..."
|
||||
curl -T "$BACKUP_TMP" --user "$FTP_USER:$FTP_PASS" "ftp://$FTP_HOST$FTP_DIR/$BACKUP_NAME"
|
||||
@ -27,3 +27,22 @@ echo "[INFO] Cleaning up..."
|
||||
rm -f "$BACKUP_TMP"
|
||||
|
||||
echo "[SUCCESS] Backup completed successfully at $DATE."
|
||||
|
||||
# بررسی وضعیت آخرین دستور (آپلود بکاپ)
|
||||
if [ $? -eq 0 ]; then
|
||||
message="✅ بکاپ Gitea با موفقیت در تاریخ ${backup_time} انجام شد."
|
||||
else
|
||||
message="❌ بکاپ Gitea با خطا مواجه شد در تاریخ ${backup_time} . لطفاً بررسی شود!"
|
||||
fi
|
||||
|
||||
# ارسال پیامک از طریق API
|
||||
echo "[INFO] Sending SMS notification..."
|
||||
curl --silent --location 'https://api2.ippanel.com/api/v1/sms/send/webservice/single' \
|
||||
--header 'accept: application/json' \
|
||||
--header 'apikey: OWYwOWE0MGQtMDdjNS00MjVlLWE2ZWMtYjRiZWZlMjhhOGNkYzY1MDFiMGFkNmUxYjEyYTMyMjY5NDQzMzU1YWYzN2M=' \
|
||||
--header 'Content-Type: application/json' \
|
||||
--data "{
|
||||
\"recipient\": [\"+989303063007\"],
|
||||
\"sender\": \"+983000505\",
|
||||
\"message\": \"${message}\"
|
||||
}"
|
Loading…
x
Reference in New Issue
Block a user