# Резервирование и восстановление

> Защитите системный Vault и Vault компаний, восстановите полную установку и сохраните точки восстановления вне сервера.

_Updated: 2026-10-07_

Новые установки используют системный Vault и независимо зашифрованный Vault каждой компании. Точка восстановления — один зашифрованный **пакет** `.vault`: System, все физические Vault компаний, включая приостановленные, локальные вложения, архивы аудита и идентификационные материалы установки. Манифест закрепляет состав и хэши. Один `system.vault` не является полной точкой восстановления и не принимается вместо пакета.

Обычный путь создания — рабочее место System. При согласованном копировании блокируются создание компаний и запись; для большой установки предусмотрите ресурсы и окно работ. В обычном режиме компании используют независимые очереди Vault. В Railbase сохранён небольшой набор команд `operator` для офлайн-восстановления и диагностических материалов. Повседневное администрирование выполняется через System; команды создания проектов и разработки в клиентскую поставку не входят.

Установка без завершённой [миграции компаний](/ru/learn/company-vault-migration) использует прежний однофайловый снимок. Вложения и секреты копируются отдельно, как описано ниже. Замена исполняемого файла не мигрирует данные.

## Создайте снимок

### Через рабочее место System

1. Войдите как оператор установки с необходимыми системными правами и откройте **System → Settings → Backups**. Роль администратора компании сама по себе не даёт такого доступа.
2. Запросите резервную копию и завершите необходимое согласование в **System → Operations → Workflows**. Отправленная заявка ещё не является точкой восстановления.
3. Вернитесь в Backups и проверьте готовый архив, дату и размер. Сохраните защищённую копию вне сервера, а материал разблокировки — отдельно.

### Офлайн-команды оператора

Используйте следующие команды, если рабочее место System недоступно. Они выполняются на сервере установки, а не на телефоне сотрудника или в рабочем месте компании.

```bash
./railbase operator backup
```

Офлайн-команда `operator backup` берёт блокировку Vault: **сначала остановите сервер** либо создайте снимок из System в работающем процессе. Результат — `<data-dir>/backups/backup-<UTC>.vault` или каталог `RAILBASE_BACKUPS_DIR`. Свой путь задаётся `--out`:

```bash
./railbase operator backup --out /backups/railbase-2026-06-04.vault
```

Список локальных снимков, начиная с новых, содержит `.vault` и плановые архивы `backup-<UTC>.tar.gz`, учитывает `RAILBASE_BACKUPS_DIR`, включая внешний подключённый каталог:

```bash
./railbase operator backup list
./railbase operator backup list --dir /backups
```

> [!IMPORTANT]
> Храните исходный материал разблокировки Vault отдельно в защищённом хранилище восстановления. Даже пакет с ключами установки нельзя открыть без внешнего материала разблокировки. Полный пакет содержит записи других компаний; его нельзя передавать одному клиенту.

Пакет содержит `.secret`, идентификационные файлы узла/аудита и локальный `.vault_password`, если он существует. Внешняя конфигурация и внешние пароли не захватываются автоматически. Внешние архивы аудита имеют собственную политику хранения и восстановления. Для **прежних однофайловых снимков** отдельно сохраните:

> - **Пароль Vault**: материал разблокировки Argon2id из `RAILBASE_VAULT_PASSWORD`, `RAILBASE_VAULT_PASSWORD_FILE` или `<data-dir>/.vault_password`. Без него файл `.vault` не открыть.
> - `railbase-data/.secret`: мастер-ключ 32 байта для сессий, cookies, цепочки аудита и ключа шифрования полей. Без соответствующего `.secret` сессии станут недействительными, а зашифрованные поля и, при `RAILBASE_ENCRYPT_STORAGE`, файловые данные **не удастся расшифровать**. Это потеря данных, а не только повторный вход.
> - **Файловое хранилище**: обычно `<data-dir>/storage` или `RAILBASE_STORAGE_DIR`, если используются поля `File()` / `Files()`. Vault содержит метаданные; содержимое файлов — в этом каталоге.

## Восстановите

Восстановление выполняет оператор установки при остановленном сервере. Сначала процесс должен освободить блокировку Vault: экран в браузере не заменяет работающую базу. В управляемом Cloud обратитесь к оператору сервиса для восстановления, а не выполняйте команды сервера самостоятельно.

Восстановление применяет проверенную точку:

```bash
./railbase operator backup --restore /backups/railbase-2026-06-04.vault
```

Отдельной команды `restore` нет: используется флаг `--restore` у `backup`. Сначала остановите сервер: нужна блокировка файла, открытая работающей установкой база не перезаписывается. Используйте исходные параметры каталога данных и разблокировки Vault.

Для пакета компаний проверяются состав, хэши, компании и ключи, готовится новое поколение и атомарно переключается `vault-layout.json`. Прежнее поколение сохраняется. Отсутствующий System Vault или повреждённый указатель восстанавливаются без запуска HTTP, заданий и Federation. Идентичность другого узла требует свежего каталога данных: существующая идентичность не заменяется молча.

Экран **System → Settings → Backups** показывает, создаёт и удаляет снимки. Для восстановления используйте офлайн-команду при остановленном сервере. Откат установки/обновления продукта соблюдает те же правила снимков.

> [!CAUTION]
> Восстановленная точка становится действующим состоянием: более поздние бизнес-изменения в ней отсутствуют. Сохраните текущую точку до переключения. Не запускайте прежнюю и восстановленную запись одновременно.

До открытия трафика проверьте аудит, членство, процесс сотрудника, содержимое документов и состояние продуктов. Для Cloud нужны текущие разрешения control plane; исторические разрешения не восстанавливаются как действующие. Примените актуальные удаления и отзывы прав.

## Снимок до рискованных операций

Создавайте снимок до необратимых действий:

- **Обновление Core** — возможность восстановления после несовместимого выпуска.
- **Очистка данных продукта** — записи удаляются окончательно; системная операция также создаёт собственную копию.
- Массовый импорт или миграция.

Действие **Backup** создаёт внеплановую точку. См. [установку](/ru/learn/installation) и [проверенное развёртывание/обновление](/ru/learn/deployment).

## Плановые копии

Автоматическое резервирование **выключено по умолчанию**. В **System → Security & storage** включите **Automatic backups** (`backups.enabled`), согласуйте изменение в Operations и перезапустите Railbase. При отсутствии сохранённой настройки можно использовать `RAILBASE_BACKUPS_ENABLED=true` в окружении службы; сохранённая настройка имеет приоритет.

После включения Railbase ежедневно в 02:30 UTC создаёт `scheduled_backup` и применяет правила хранения. Назначение и срок хранения — управляемые настройки; клиентского редактора произвольного cron нет. Файл имеет прежнее расширение `.tar.gz`, но не gzip-сжатие: это полный зашифрованный пакет компаний либо однофайловый зашифрованный снимок прежней схемы. По умолчанию используется `<data-dir>/backups`, учитывается `RAILBASE_BACKUPS_DIR`; настройка каталога конкретного расписания имеет приоритет. Хранение по умолчанию — 30 дней.

При выключенной функции Railbase не создаёт расписание и не выполняет старые задания резервирования/очистки. Существующие файлы и история остаются. Чтобы остановить включённое расписание, выключите настройку и перезапустите. Уже начавшийся снимок может закончиться до остановки; изменение настройки само не прерывает работу. Ручные копии и защитные снимки обновления сохраняют свои маршруты. Внешняя служба восстановления управляемого Cloud имеет отдельную политику.

Добавьте копирование вне сервера:

```bash
# Пример: ночное копирование в отдельное хранилище или на другой сервер
rsync -a /var/lib/railbase/backups/ backup-host:/railbase/
```

> [!TIP]
> Храните хотя бы одну копию **вне сервера**. Копия на том же диске не защищает от потери диска.

## Завершите курс Acme

Оператор создаёт точку с [историей заявки и решений Acme](/ru/learn/core-first-process), членством и реальными файлами. Защищённый материал разблокировки хранится отдельно. Практикуйте восстановление в изолированной среде с поддерживаемыми правилами идентичности и схемы; не запускайте две записи в одни данные.

До завершения проверки войдите действительными заявителем и согласующим, откройте сохранённую заявку, точные версии документов, результат и доступ компании. Актуальные права продукта проверяются отдельно от исторических оснований. Зафиксируйте точку, проверки и оператора; отозванные старые полномочия не становятся текущими.

Основа Core теперь повторяема. Продолжите [Accounting](/ru/learn/accounting-suite) или [GRC](/ru/learn/grc-suite) по установленным продуктам и назначенной работе компании.
