Skip to content

Latest commit

 

History

History
162 lines (118 loc) · 8.33 KB

RESTORE.md

File metadata and controls

162 lines (118 loc) · 8.33 KB

🔄 راهنمای کامل بازسازی (RESTORE)

⚡ بازیابی با «یک دستور» (راه سریع — برای ایجنت یا خودت)

روی سرور جدید (محیط ابری Z.ai تازه یا هر لینوکسی با git/bun/rsync/python3) فقط همین یک خط را اجرا کن — کل سیستم با آخرین بکاپ ساعتی برمی‌گردد:

bash <(curl -fsSL -H "Authorization: Bearer <TOKEN>" \
  https://raw.githubusercontent.com/CiaNetIR/agent/main/recovery/bootstrap.sh) \
  --token <TOKEN>
  • <TOKEN> = توکن گیت‌هاب (ghp_…) — این دستور را همراه توکن، جایی امن و آفلاین (مثلاً نوت خودت) ذخیره کن؛ کل طرح نجات به همین یک خط وابسته است.
  • خودش همه‌چیز را انجام می‌دهد: کلون آخرین بکاپ → بازگرداندن کل فایل‌ها (پروژه، دیتابیس، سشن تلگرام، تنظیمات، فاکتورها، اسکریپت‌ها) → نصب وابستگی‌ها → راه‌اندازی همه‌ی سرویس‌ها → فعال‌سازی بکاپ ساعتی و زیپ روزانه → گزارش سلامت.
  • گزینه‌ها: --force (بازنویسی روی نصب زنده)، --skip-install، --skip-start، --root، --mirror، --repo، --branch — توضیح کامل: recovery/bootstrap.sh --help
  • اگر ترجیح می‌دهی مرحله‌به‌مرحله و دستی بری، ادامه‌ی همین راهنما برای توست.

نکته: این ریپو خصوصی است — همان‌طور بماند (سشن تلگرام و هش رمز پنل داخلش هست). اگر فقط واتچر تلگرام خراب شده (نه کل سرور)، راه سریع‌تر: my-project/tg-tools-backup/restore.sh


این راهنما برای وقتیه که دسترسی به محیط ابری فعلی قطع شده و می‌خوای کل سیستم رو روی یه سرویس جدید (یا حتی یه VPS شخصی) از روی همین ریپازیتوری بالا بیاری. مراحل رو به ترتیب انجام بده.

همهٔ دستورها با کاربر عادی اجرا می‌شن؛ روت لازم نیست (مگر در سناریوی VPS برای سرویس دائمی).


۰) چیزی که لازم داری

  • یه سرویس لینوکسی (ترجیحاً همون محیط ابری Z.ai که bun و node از قبل داره) یا هر VPS با:
    • git ، python3 (3.10+) ، node (20+) ، bun
    • خروجی به اینترنت (برای اتصال به تلگرام و LLM)
  • همین ریپازیتوری (کلون‌شده):
git clone https://github.com/CiaNetIR/agent.git
cd agent

۱) پنل مدیریت وب (خود شل مرورگریت همینه)

cd agent/my-project
bun install                 # وابستگی‌ها
bun run db:push             # دیتابیس (فایل db/custom.db داخل ریپو هست؛ این دستور فقط اسکیمای جاافتاده رو می‌سازه)
bun run dev                 # پنل روی پورت 3000 بالا میاد
  • رمز ورود = هش my-project/.secrets/panel.env. رمز اصلی توی ذهنته؛ اگه یادت رفته → بخش ۶ (ریست رمز).
  • اگه سرویس جدیدت گیت‌وی مشابه داره که فقط پورت 3000 رو نشون می‌ده، همین کافیه.
  • روی VPS شخصی: bun run dev رو با systemd یا tmux دائمی کن و پشت nginx/caddy بذار.

۲) ترمینال وب (شل داخل مرورگر)

cd agent/my-project/mini-services/terminal
bun install
bash term_ctl.sh start      # سرویس روی پورت 3001

بعد از لاگین به پنل، تب «ترمینال» همون شل محیطه — از هر جای دنیا.

۳) سرویس ایجنت (اسکرپر / ووکامرس / گزارش روزانه / پشتیبانی / تصویر / فاکتور)

cd agent/my-project/mini-services/agent
bun install
bash agent_ctl.sh start     # سرویس روی پورت 3004

تنظیماتش (آدرس سایت ووکامرس، کلیدها، ساعت گزارش و…) از تب «ایجنت» داخل پنل انجام می‌شه.

۴) دستیار تلگرام (watcher)

وابستگی پایتون (یک‌بار برای همیشه):

python3 -m venv /home/z/.venv               # اگه venv نداری؛ روی VPS مسیر دلخواه
/home/z/.venv/bin/pip install telethon

نکته: watcher_ctl.sh و instances_ctl.sh مسیر پایتون رو از PY=/home/z/.venv/bin/python می‌خونن — روی VPS این خط رو با مسیر venv خودت عوض کن.

سشن تلگرام داخل my-project/.secrets/tg.env هست (داخل همین ریپو). اگه هنوز سشن زنده باشه، مستقیم بالا میاد:

mkdir -p /home/z/tg-tools
cp -r agent/tg-tools/* /home/z/tg-tools/
cd /home/z/tg-tools/watcher
bash watcher_ctl.sh start
bash watcher_ctl.sh status

اکانت‌های اضافه هم با instances_ctl.sh <id> start بالا میان (پوشهٔ tg-tools/instances/).

۴-ب) اگه سشن مرده بود (ورود دوباره با شماره)

cd /home/z/tg-tools
/home/z/.venv/bin/python login_phone.py send-code --phone '+98xxxxxxxxxx'
# کد توی تلگرام خودت میاد، بعد:
/home/z/.venv/bin/python login_phone.py complete --code 12345 --password 'رمز2FA'

سشن جدید خودش توی my-project/.secrets/tg.env ذخیره می‌شه.

۵) تست سلامت کل سیستم

  • پنل: مرورگر → پورت 3000 (یا آدرس گیت‌وی) → ورود با رمز.
  • ترمینال: تب «ترمینال» → اتصال → باید پرامپت star(z):~$ رو ببینی.
  • ایجنت: تب «ایجنت» → وضعیت سرویس‌ها سبزه.
  • watcher: توی تلگرام به Saved Messages خودت «وضعیت» بفرست → باید جواب بده.

۶) ریست رمز پنل (اگه رمز رو یادت رفته)

cd agent/my-project/tg-tools-backup
bash reset-panel-password.sh 'رمز-جدید-حداقل-۸-کاراکتر'

۷) چند نکتهٔ حیاتی

  • فقط یک کلاینت هم‌زمان روی هر سشن تلگرام — وقتی watcher فعاله، هیچ ابزار دیگه‌ای با همون سشن اجرا نکن (اول watcher_ctl.sh pause).
  • .secrets/ را هیچ‌وقت به کسی نده؛ کل دسترسی سیستمت همونه.
  • بکاپ‌های zip که watcher می‌فرسته (Saved Messages تلگرام) همیشه به‌روزترین سشن و تنظیماتن.
  • watcher.lock و supervisor.pid و PAUSE و pending*.json عمداً داخل ریپو نیستن — نیازی بهشون نیست.

🕐 بکاپ ساعتی خودکار (جدید — 2026-10)

سرویس my-project/mini-services/backups/ هر ساعت (دقیقهٔ صفر) کل سرور رو به همین ریپو پوش می‌کنه؛ چیزی برای بازگردانی لازم نیست — فقط git pull بزن.

  • وضعیت هر اجرا: BACKUP-LOG.md (زمان / کامیت / سلامت بیلد / مدت)
  • عکس لحظه‌ای سرور (پورت‌ها، پید‌ها، دیسک، رم، نسخه‌ها): server/SERVER-STATE.md
  • اجرای فوری یا ری‌استارت از پنل: تب «سرویس‌ها» → کارت «بکاپ خودکار گیت‌هاب» یا از شل: bash my-project/mini-services/backups/backups_ctl.sh run-now
  • توکن گیت‌هاب روی سرورِ اصلی در /home/z/.github-token (سطح دسترسی 600) است؛ روی سرور جدید دوباره بسازش و دسترسی repo بده.

🆕 فولدرهای جدید ریپو (2026-10)

scripts/ (شل‌اسکریپت‌های ریشهٔ سرور)، agent/ (اسکرپر)، e2e/، self/، agent-files/ (فاکتورها و فایل‌های چت)، recovery/ (زیپ‌های نقطه‌ای)، server/ (وضعیت سرور). فایل prisma-schema.prisma سرویس ایجنت از این به بعد کپیِ دقیق my-project/prisma/schema.prisma است — بعد از هر تغییر schema، دوتاش رو یکی نگه دار (الان یکی‌ان).