Восстановление
Restore требует двух пустых целей: нового NAS-каталога и нового локального Docker volume. Рабочие данные не перезаписываются.
sudo bash mail.sh down
sudo bash mail.sh restore \
/mnt/omv/work/SMTP/mail-data/backups/BACKUP.tar.gz \
/mnt/omv/work/SMTP/mail-restored \
--state-volume mail_restored
sudo bash mail.sh up
Используйте настоящее имя архива. UID/GID берутся из sudo; при входе root укажите --nas-uid 1000 --nas-gid 1000. На новом хосте учитывайте владельца нового NAS-каталога.
Команда проверяет архив на выход за каталог, ссылки и специальные файлы. Blob-файлы извлекаются на NAS от его владельца; конфигурация и секреты — в локальный volume. PostgreSQL создаёт новые базы, затем выполняется pg_restore. Сертификаты, учётные записи и настройки восстанавливаются из архива.
Только после успешного восстановления переключается /etc/mail-stack/location.json. Если доступен systemd, unit автоматически переписывается на новый локальный runtime и новый NAS-путь. --no-systemd отключает этот шаг.
При ошибке восстановления исходная установка сохраняется. Незавершённая цель помечена .restore-incomplete; setup не превращает её в пустую рабочую БД. Повторите восстановление в другие пустые цели после устранения причины.
Перенос старой установки «всё на NAS»
Сначала используйте её прежнюю версию mail.sh backup, затем остановите старый стек. Новая команда restore понимает прежний архив: метаданные и БД импортируются локально, blobs — в новый NAS-каталог. Автоматического перемещения файлов исходного NAS нет.
После восстановления проверьте вход, исходное письмо по IMAP, отправку и резервное копирование. Если сохранившийся исходный клон содержит .mail-stack.json, не удаляйте его для обхода проверки: используйте новый клон и явное восстановление.