# 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

Description
اسکریپت بکاپ خودکار از Gitea و آپلود به FTP
Readme 36 KiB
Languages
Shell 100%