Files
3x-ui/docs/content/docs/fa/operations/backup-restore.mdx
T
MHSanaei 9b91f0f42e docs: vendor the documentation site into the monorepo
Fold the standalone 3x-ui-docs project (Next.js 16 + Fumadocs, deployed to
docs.sanaei.dev) into docs/ so the panel and its documentation share a single
source of truth, the way sing-box keeps its docs in-tree. The old repo becomes
redundant and can be retired.

- Import the full site under docs/ (app, components, content, lib, public,
  scripts, config). The self-contained pnpm project sits alongside the existing
  engineering notes with no filename collisions.
- Re-point "Edit on GitHub" links from MHSanaei/3x-ui-docs to this repo's
  docs/content/docs path (docs/lib/shared.ts, docs/app/.../page.tsx).
- Add docs-ci.yml and docs-deploy.yml under .github/workflows/, scoped to
  docs/** and run with working-directory: docs, since GitHub only runs
  workflows from the repo-root .github/. deploy-static.yml's GitHub Pages
  publish (CNAME docs.sanaei.dev) carries over unchanged.

Follow-up (outside this commit): attach the docs.sanaei.dev custom domain to
this repository's Pages (or set the Vercel project's root directory to docs),
confirm the site is live from the monorepo, then delete MHSanaei/3x-ui-docs.
2026-07-07 23:07:14 +02:00

58 lines
3.5 KiB
Plaintext

---
title: پشتیبان‌گیری و بازیابی
description: از پایگاه‌داده و گواهی‌های 3x-ui خود به‌صورت دستی یا از طریق ربات Telegram پشتیبان بگیرید و آن‌ها را بازیابی کنید.
icon: DatabaseBackup
---
تمام پیکربندی شما — ورودی‌ها، کلاینت‌ها و تنظیمات — در پایگاه‌داده‌ی پنل
قرار دارد. مرتب از آن پشتیبان بگیرید تا بتوانید بازیابی یا مهاجرت کنید.
## از چه چیزی پشتیبان بگیریم
- **پایگاه‌داده** — به‌صورت پیش‌فرض یک SQLite در `/etc/x-ui/x-ui.db` (یا پایگاه‌داده‌ی
PostgreSQL شما اگر از آن backend استفاده می‌کنید).
- **گواهی‌ها** — هر چیزی که زیر `/root/cert/` (یا هر جایی که گواهی‌های TLS را نگه می‌دارید)
قرار دارد.
## پشتیبان‌گیری دستی
می‌توانید یک نسخه‌ی پشتیبان را از صفحه‌ی نمای کلی پنل دانلود کنید، یا فایل پایگاه‌داده را
مستقیماً از سرور کپی نمایید:
```bash title="copy the SQLite database"
cp /etc/x-ui/x-ui.db /root/x-ui-backup-$(date +%F).db
```
برای بازیابی، پنل را متوقف کنید، پایگاه‌داده را سر جای خود برگردانید و دوباره آن را اجرا کنید.
<Callout type="warn">
هر وقت ممکن است، یک نسخه‌ی پشتیبان را روی **همان نسخه‌ی اصلی (major)** که از آن گرفته شده
بازیابی کنید. در ارتقاهای میان‌نسخه‌ای اصلی، به‌جای تحمیل یک شِمای قدیمی، بگذارید پنل
مهاجرت‌های خود را اجرا کند.
</Callout>
## پشتیبان‌گیری با Telegram
اگر [ربات Telegram](/docs/operations/telegram-bot) را پیکربندی کرده‌اید، گزینه‌ی
**`tgBotBackup`** را فعال کنید تا یک نسخه‌ی پشتیبان به گزارش دوره‌ای ضمیمه شود (بر اساس
زمان‌بندی `tgRunTime`، به‌صورت پیش‌فرض روزانه). ربات هم **پایگاه‌داده** و هم **`config.json`
مربوط به Xray** را به چت ادمین شما می‌فرستد، بنابراین همیشه یک نسخه‌ی خارج از سرور در اختیار
دارید. ادمین‌ها همچنین می‌توانند به‌صورت درخواستی از منوی ربات یک نسخه‌ی پشتیبان بخواهند.
## دامپ / بازیابی SQLite
دستور `x-ui migrate-db` پایگاه‌داده‌ی SQLite را به یک دامپ متنی SQL ساده و بالعکس تبدیل
می‌کند (برای بررسی یا انتقال میان دستگاه‌ها کاربردی است):
```bash
x-ui migrate-db --dump /root/x-ui.sql # SQLite -> SQL text
x-ui migrate-db --restore /root/x-ui.sql # SQL text -> SQLite
```
برای مهاجرت به PostgreSQL، به [پایگاه‌داده](/docs/reference/database) مراجعه کنید.
<Callout type="info">
از هر روشی که استفاده می‌کنید، نسخه‌های پشتیبان را **خارج از سرور** نگه دارید و هرازگاهی
یک بازیابی را آزمایش کنید — یک نسخه‌ی پشتیبانِ آزمایش‌نشده، پشتیبان به‌حساب نمی‌آید.
</Callout>