# Gitea Backup Script (Docker + FTP + SMS Notification)
پروژهای برای بکاپگیری خودکار از Gitea نصبشده با Docker، انتقال فایل به سرور دوم از طریق FTP و ارسال پیامک وضعیت بکاپ با استفاده از پنل SMS IPPanel.
---
## 📦 نیازمندیها
- سیستمعامل لینوکسی (Debian,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)
🚀 اجرای دستی
برای اجرای دستی اسکریپت:
chmod +x gitea_backup.sh
./gitea_backup.sh
اسکریپت موارد زیر را انجام میدهد:
- ایجاد فایل بکاپ از
/data
کانتینر Gitea - انتقال فایل به FTP
- ارسال پیامک نتیجه موفق یا ناموفق بودن
⏰ اجرای خودکار با Cron
برای تنظیم بکاپ روزانه، ابتدا ابزار cron را نصب کن:
apt install cron -y
سپس کرونجاب را اضافه کن:
crontab -e
و این خط را اضافه کن (مثلاً ساعت ۲ بامداد هر شب):
0 2 * * * /root/Git/gitea-backup/gitea_backup.sh >> /var/log/gitea_backup.log 2>&1
📲 ارسال پیامک با IPPanel
در صورت موفق یا ناموفق بودن عملیات، اسکریپت یک پیامک با محتوای وضعیت ارسال میکند.
مثال محتوای پیامک موفق:
✅ بکاپ Gitea با موفقیت در تاریخ 2025-05-30 02:00 انجام شد.
مثال محتوای پیامک ناموفق:
❌ بکاپ Gitea با خطا مواجه شد در تاریخ 2025-05-30 02:00 . لطفاً بررسی شود!
برای استفاده از IPPanel نیاز به API Key معتبر دارید.
📞 دریافت پنل پیامکی IPPanel
اگر پنل پیامکی نیاز دارید، تماس بگیرید:
- 📱 09303063007 (تأمین پنل رسمی IPPanel با دسترسی به خطوط خدماتی)
آفرین که با دقت جلو میری! حق با توئه — بخش ریستور (Restore) هم لازمه توی فایل README.md
باشه تا بدونی در صورت نیاز چطور بکاپها رو برگردونی.
بذار این بخش رو به انتهای فایل اضافه کنیم:
♻️ ریستور کردن بکاپ
در صورتی که بخوای Gitea رو از یک بکاپ برگردونی، مراحل زیر رو دنبال کن:
۱. فایل بکاپ رو انتقال بده
ابتدا فایل .tar.gz
بکاپ که از FTP یا محل ذخیرهسازی داری رو روی سرور مقصد کپی کن. مثلاً:
scp gitea-backup_2025-05-30_02-00.tar.gz root@your-server:/root/
یا از FTP بگیر:
wget ftp://ftpuser:ftppass@ftp.example.com/backups/gitea/gitea-backup_2025-05-30_02-00.tar.gz
۲. کانتینر Gitea رو متوقف کن
docker stop gitea
۳. دایرکتوری دیتا رو پاک یا جایگزین کن
احتیاط: قبل از پاک کردن، اگر داده فعلی مهمه، یک بکاپ جدا بگیر.
rm -rf /your/gitea/data/path/*
۴. بکاپ رو اکسترکت کن
tar -xvzf gitea-backup_2025-05-30_02-00.tar.gz -C /your/gitea/data/path/
اگر از اسکریپت استفاده کرده باشی، مسیر
/data
درون بکاپ هست. مطمئن شو که پوشهها درست جایگزین میشن.
۵. پرمیشنها رو اصلاح کن (اختیاری ولی توصیهشده)
chown -R 1000:1000 /your/gitea/data/path/
عدد 1000 معمولاً مربوط به یوزر
git
در داخل کانتینره.
۶. کانتینر Gitea رو مجدد اجرا کن
docker start gitea
🎉 حالا باید Gitea با اطلاعات قبلی بالا بیاد.
👨💻 توسعهدهنده
با همکاری GPT و تیم حفظ 🔗 https://git.hefzteam.ir