Backup archive format
- Формат:
tar.gz. - Структура:
manifest.json— метаданные архива (schema=1, domain, slug, profile, php, public_dir, doc_root, enabled, список файлов с sha256/mode).nginx/sites-available/<domain>.confnginx/sites-enabled/<domain>.conf.symlink— содержитenabled: yes|nophp-fpm/pool.d/php<ver>/<slug>.conf— если пул есть в системеcron.d/<slug>— только если файл simai-managed и slug совпадаетsystemd/<unit>.service— очередь, если присутствуетNOTES.txt— краткое описание включённых/исключённых артефактов
Безопасность
- Архив не содержит SSL приватных ключей,
.envи другие секреты. - Cron импортируется только если файл содержит заголовки
simai-managed: yesи корректный slug (и, по возможности, domain). enabledв manifest — булево значение (true/false).
Создание/импорт
- Экспорт:
simai-admin.sh backup export --domain <domain> [--out <path>] - Инспекция:
simai-admin.sh backup inspect --file <archive> - Импорт:
simai-admin.sh backup import --file <archive> [--apply yes] [--enable yes|no] [--reload yes|no]- По умолчанию dry-run (apply=no).
- Dry-run показывает профильную совместимость (
profile known/enabled,requires PHP,supports cron/queue). - apply=yes блокируется, если профиль архива не известен или отключён в локальном allowlist.
- При apply=yes существующие файлы бэкапятся в
.bak.<timestamp>перед заменой. - nginx reload выполняется только после
nginx -t; при ошибке reload/ restart выполняется откат бэкапов (включая symlink, если enable=yes). - cron/unit импортируются условно: только если это разрешено контрактом профиля.