184 lines
4.8 KiB
Markdown
184 lines
4.8 KiB
Markdown
````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)
|
||
|
||
``` |