افزودن قابلیت ارسال پیامک در صورت موفق یا ناموفق بودن بکاپ + بهروزرسانی 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
|
#!/bin/bash
|
||||||
|
|
||||||
DATE=$(date +"%Y-%m-%d_%H-%M")
|
DATE=$(date +"%Y-%m-%d_%H-%M") #به دست اوردن تاریخ و زمان حال
|
||||||
BACKUP_NAME="gitea_backup_$DATE.tar.gz"
|
BACKUP_NAME="gitea_backup_$DATE.tar.gz" #نام فایل بکاپ
|
||||||
BACKUP_TMP="/tmp/$BACKUP_NAME"
|
BACKUP_TMP="/tmp/$BACKUP_NAME" #محل ذخیره سازی موقت فایل بکاپ
|
||||||
|
|
||||||
echo "[INFO] Creating backup from Docker container..."
|
echo "[INFO] Creating backup from Docker container..."
|
||||||
docker exec gitea tar -czf - /data > "$BACKUP_TMP"
|
docker exec gitea tar -czf - /data > "$BACKUP_TMP"
|
||||||
@ -10,11 +10,11 @@ if [ $? -ne 0 ]; then
|
|||||||
echo "[ERROR] Failed to create backup!"
|
echo "[ERROR] Failed to create backup!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
#بخش کافیگ ftp
|
||||||
FTP_HOST="ftp.example.com"
|
FTP_HOST="ftp.example.com" #آدرس سرور ftp
|
||||||
FTP_USER="your_ftp_user"
|
FTP_USER="your_ftp_user" #نام کاربری اکانت ftp
|
||||||
FTP_PASS="your_ftp_pass"
|
FTP_PASS="your_ftp_pass" #رمز اکانت ftp
|
||||||
FTP_DIR="/backups/gitea"
|
FTP_DIR="/backups/gitea" #آدرس محل ذخیره سازی
|
||||||
|
|
||||||
echo "[INFO] Uploading backup to FTP server..."
|
echo "[INFO] Uploading backup to FTP server..."
|
||||||
curl -T "$BACKUP_TMP" --user "$FTP_USER:$FTP_PASS" "ftp://$FTP_HOST$FTP_DIR/$BACKUP_NAME"
|
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"
|
rm -f "$BACKUP_TMP"
|
||||||
|
|
||||||
echo "[SUCCESS] Backup completed successfully at $DATE."
|
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