---
title: Резервное копирование и восстановление
description: Создавайте резервные копии базы данных и сертификатов 3x-ui и восстанавливайте их вручную или через Telegram-бота.
icon: DatabaseBackup
---

Вся ваша конфигурация — входящие подключения, клиенты, настройки — хранится в
базе данных панели. Регулярно создавайте резервные копии, чтобы иметь возможность
восстановления или переноса.

## Что копировать

- **База данных** — по умолчанию SQLite в `/etc/x-ui/x-ui.db` (или ваша база
  данных PostgreSQL, если вы используете этот бэкенд).
- **Сертификаты** — всё, что находится в `/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">
  По возможности восстанавливайте резервную копию на **той же мажорной версии**, с
  которой она была создана. При переходе между мажорными версиями дайте панели
  выполнить миграции, а не навязывайте старую схему.
</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>
