gitea-backup/README.md
2025-05-31 00:53:44 +03:30

184 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

````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)
```