Восстановление
Восстановить без панели
Бэкапы — обычные restic-репозитории в ваших S3. Поднять их можно без панели, без подписки и без нашего API: нужен recovery kit. Пока панели нет, остальные серверы продолжают бэкапы по своим планам: план хранится на каждом сервере.
Recovery kit
Kit — файл arcula-recovery-kit-<дата>.age: адреса хранилищ, ключи S3 и пароли restic-репозиториев всех серверов, в том числе отключённых, если их бэкапы ещё лежат. Файл зашифрован паролем, который вы задаёте при выдаче. Мастер-ключа панели, её настроек и ключей unseal Vault в kit нет.
Скачать: ЛК → «Настройки» → «Восстановление без панели» → «Recovery kit» → «Скачать». Понадобятся пароль от ЛК и новый пароль для файла.
Храните kit офлайн: файл — на своём компьютере в защищённой папке, пароль от файла — в менеджере паролей. Не на серверах и не в хранилищах с бэкапами: kit нужен как раз тогда, когда их нет. Сменились хранилища или ключи — ЛК напомнит сохранить kit заново.
Проверяйте kit время от времени. Root не нужен, подойдёт любая Linux-машина с arcula и restic:
arcula kit verify ./arcula-recovery-kit-2026-10-24.ageКоманда открывает kit и для каждого репозитория каждого сервера читает список снимков и manifest последнего бэкапа. Ничего не меняет. Всё в порядке — «Emergency access is set up: the kit opens, all repositories are readable.» Итог виден только в терминале, в ЛК он не уходит.
Где взять arcula без панели
install.sh взять негде, поэтому ставим вручную:
arcula— с любого живого сервера (/usr/local/bin/arcula) или из каталога релизаdownloads/arcula/<версия>/linux-<arch>, сверив сSHA256SUMS;- restic 0.18.1 — с GitHub или из релиза;
- Docker Engine и Compose v2 — если восстанавливаются тома и базы.
Например, на amd64:
scp живой-сервер:/usr/local/bin/arcula .
sudo install -m 0755 arcula /usr/local/bin/arcula
curl -fsSLO https://github.com/restic/restic/releases/download/v0.18.1/restic_0.18.1_linux_amd64.bz2
bunzip2 restic_0.18.1_linux_amd64.bz2
sudo install -d -m 0700 /var/lib/arcula
sudo install -D -m 0755 restic_0.18.1_linux_amd64 /var/lib/arcula/bin/resticВосстановить по kit
arcula kit verify ./arcula-recovery-kit-2026-10-24.age
sudo arcula restore --kit ./arcula-recovery-kit-2026-10-24.ageС --kit arcula идёт без мастера: готовит сервер (prepare) из самого свежего бэкапа, показывает план и ждёт подтверждения. Пароль kit спросит без эха. Нужен компонент или файлы — добавьте --mode component --component … или --mode files --path … --target …. Пошаговый мастер — sudo arcula restore без флагов: на машине без доступа к хранилищам он сам спросит файл kit.
--server NAME— какой сервер из kit. Не нужен, если сервер в kit один или имя хоста совпадает.--from NAME— хранилище. Без него — первое, где есть бэкап.--password-file FILE— пароль kit из файла, для скриптов.
Сервисы не запускаются. Подробнее о режимах и отчёте — Восстановить данные.
Обычный restic вручную
Без arcula данные поднимает и сам restic. Kit — файл age с паролем, расшифруйте его:
age -d arcula-recovery-kit-2026-10-24.age > kit.jsonВ kit.json у сервера в repositories — адрес репозитория (repository) и его пароль (repository_password). Ключ S3 и регион — у хранилища в storages. Если у хранилища свой ключ у каждого сервера, ключ — у репозитория сервера.
export RESTIC_REPOSITORY='<repository из kit>'
export RESTIC_PASSWORD='<repository_password из kit>'
export AWS_ACCESS_KEY_ID='…'
export AWS_SECRET_ACCESS_KEY='…'
export AWS_DEFAULT_REGION='…'
restic snapshots
restic restore latest --target /srv/restoreВнутри бэкапа:
/arcula-manifest.json— что вошло и в каком порядке поднимать;/db/<проект>/<сервис>/— дампы баз (pg_dump -Fcкаждой базы иglobals.sql), снимок Vault, архив GitLab;/files/<путь>— каталоги;/volumes/<том>— тома Docker;/host/<путь>— настройки хоста.
Базу из дампа поднимает pg_restore в PostgreSQL той же версии. После работы удалите kit.json — в нём все ключи:
shred -u kit.jsonНа живом сервере kit не нужен: доступ к репозиториям этого сервера лежит в /etc/arcula/repos/. От root:
set -a; . /etc/arcula/repos/<id хранилища>.env; set +a
/var/lib/arcula/bin/restic snapshotsПанель и Vault на одном сервере
Панель берёт настройки из Vault на том же сервере, поэтому без Vault она не стартует. Если такой сервер потерян, порядок такой: сначала Vault, затем панель. Доработок для этого не нужно.
Понадобятся kit и пароль от него, мастер-ключ панели из менеджера паролей и ключи unseal Vault.
1. Новая машина
Поставьте arcula, restic и Docker, как выше, и проверьте kit:
arcula kit verify ./arcula-recovery-kit-2026-10-24.age2. Данные сервера
sudo arcula restore --kit ./arcula-recovery-kit-2026-10-24.age --server <сервер панели>Один запуск prepare вернёт всё сразу: каталоги проектов, тома, данные Vault и базу PostgreSQL панели из дампа. Сервисы arcula не запускает — запускайте их сами, по порядку.
3. Сначала Vault
- Vault копировался файлами — данные уже на месте. Запустите Vault и распечатайте его исходными ключами unseal.
- Vault шёл снимком Raft — снимок извлечён в
/var/lib/arcula/restore/<id>/vault. Восстановите его, как в статье Vault: снимки Raft.
Проверьте vault status и что секреты панели на месте.
4. Затем панель
- Мастер-ключ — из менеджера паролей: файл с правами
0600по пути изARCULA_MASTER_KEY_FILEили переменнаяARCULA_MASTER_KEY. - Настройки — из восстановленного Vault.
- Запустите панель:
docker compose up -dв её каталоге. - Статика ЛК — из
web-<версия>.tar.gzрелиза, если её каталога не было в плане. Настройки Caddy на хосте извлечены в/var/lib/arcula/restore/<id>/host. Затем DNS. - Проверьте
https://<домен>/api/web/v1/healthи войдите в ЛК.
Агенты остальных серверов выйдут на связь сами и дошлют журналы, накопленные без панели.
Та же статья — в панели, в разделе «Справка».