````markdown # 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) ```` --- ## 🚀 اجرای دستی برای اجرای دستی اسکریپت: ```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 با موفقیت در تاریخ 2025-05-30 02:00 انجام شد. ``` ### مثال محتوای پیامک ناموفق: ``` ❌ بکاپ Gitea با خطا مواجه شد در تاریخ 2025-05-30 02:00 . لطفاً بررسی شود! ``` > برای استفاده از IPPanel نیاز به API Key معتبر دارید. --- ## 📞 دریافت پنل پیامکی IPPanel اگر پنل پیامکی نیاز دارید، تماس بگیرید: * **📱 09303063007** (تأمین پنل رسمی IPPanel با دسترسی به خطوط خدماتی) --- آفرین که با دقت جلو میری! حق با توئه — بخش ریستور (Restore) هم لازمه توی فایل `README.md` باشه تا بدونی در صورت نیاز چطور بکاپ‌ها رو برگردونی. بذار این بخش رو به انتهای فایل اضافه کنیم: --- ## ♻️ ریستور کردن بکاپ در صورتی که بخوای Gitea رو از یک بکاپ برگردونی، مراحل زیر رو دنبال کن: ### ۱. فایل بکاپ رو انتقال بده ابتدا فایل `.tar.gz` بکاپ که از FTP یا محل ذخیره‌سازی داری رو روی سرور مقصد کپی کن. مثلاً: ```bash scp gitea-backup_2025-05-30_02-00.tar.gz root@your-server:/root/ ``` یا از FTP بگیر: ```bash wget ftp://ftpuser:ftppass@ftp.example.com/backups/gitea/gitea-backup_2025-05-30_02-00.tar.gz ``` --- ### ۲. کانتینر Gitea رو متوقف کن ```bash docker stop gitea ``` --- ### ۳. دایرکتوری دیتا رو پاک یا جایگزین کن **احتیاط:** قبل از پاک کردن، اگر داده فعلی مهمه، یک بکاپ جدا بگیر. ```bash rm -rf /your/gitea/data/path/* ``` --- ### ۴. بکاپ رو اکسترکت کن ```bash tar -xvzf gitea-backup_2025-05-30_02-00.tar.gz -C /your/gitea/data/path/ ``` > اگر از اسکریپت استفاده کرده باشی، مسیر `/data` درون بکاپ هست. مطمئن شو که پوشه‌ها درست جایگزین می‌شن. --- ### ۵. پرمیشن‌ها رو اصلاح کن (اختیاری ولی توصیه‌شده) ```bash chown -R 1000:1000 /your/gitea/data/path/ ``` > عدد 1000 معمولاً مربوط به یوزر `git` در داخل کانتینره. --- ### ۶. کانتینر Gitea رو مجدد اجرا کن ```bash docker start gitea ``` --- ### 🎉 حالا باید Gitea با اطلاعات قبلی بالا بیاد. --- ## 👨‍💻 توسعه‌دهنده با همکاری GPT و تیم حفظ 🔗 [https://git.hefzteam.ir](https://git.hefzteam.ir) ```