روی سرور جدید (محیط ابری 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 agentcd 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تنظیماتش (آدرس سایت ووکامرس، کلیدها، ساعت گزارش و…) از تب «ایجنت» داخل پنل انجام میشه.
وابستگی پایتون (یکبار برای همیشه):
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عمداً داخل ریپو نیستن — نیازی بهشون نیست.
سرویس 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بده.
scripts/ (شلاسکریپتهای ریشهٔ سرور)، agent/ (اسکرپر)، e2e/، self/،
agent-files/ (فاکتورها و فایلهای چت)، recovery/ (زیپهای نقطهای)،
server/ (وضعیت سرور). فایل prisma-schema.prisma سرویس ایجنت از این به بعد
کپیِ دقیق my-project/prisma/schema.prisma است — بعد از هر تغییر schema،
دوتاش رو یکی نگه دار (الان یکیان).