Эксплуатация instance
Повседневная работа с запущенными instance: обновления, резервные копии, сбои и логи.
NOTE
Режим контейнера и формат архива .panoarc поставляются вместе с образами контейнеров начиная с Pano 1.0.0-alpha.520. См. Хостинг Pano Instance для других.
Обновления и откат
Версия instance может смениться двумя способами:
- С вашей стороны: остановите контейнер, положите новый jar и UI в
/data(с проверкой sha256), сохраните предыдущие для отката, обновите/data/.pano-jarи запустите. - Из панели самого Pano: в режиме контейнера Pano готовит новый jar в
/data, обновляет.pano-jarи завершается с кодом 75. Лаунчер запускает новый jar, контейнер продолжает работать.
Код выхода 75 — это всегда плановый перезапуск, а не сбой.
Для отката укажите в .pano-jar предыдущий jar и перезапустите. При запуске более новой версии Pano переносит базу данных вперёд, поэтому безопасный способ откатить изменения БД — восстановить резервную копию.
Резервные копии
Делайте резервные копии каждого instance по расписанию и храните их вне сервера. Pano Host ежедневно сохраняет копии в хранилище S3 и держит их 3, 7 или 30 дней в зависимости от пакета.
Резервная копия Pano Instance — это один архив .panoarc. Тот же формат используется для резервных копий, экспорта, импорта, переноса между серверами и Pano Backup. Это zip, внутри которого:
| Запись | Содержимое |
|---|---|
db/dump.sql.gz | логический дамп базы instance (только таблицы и данные) |
app/config.conf | конфигурация instance |
app/plugins/, app/themes/ | установленные плагины и темы |
app/file-uploads/, app/maintenance/ | загрузки и файлы режима обслуживания |
manifest.json | последняя запись: версия Pano, версии схемы БД и хеш каждого файла |
Jar Pano, libraries/, встроенные UI и logs/ в архив не входят; вместо этого манифест хранит версию Pano. Символические ссылки пропускаются.
Архив можно зашифровать AES-256-GCM: либо случайным ключом для каждого instance, который храните вы, либо ключом, полученным из пароля владельца (Argon2id). Утерянный пароль восстановить нельзя.
Восстановление
- Скачайте архив в промежуточную папку вне дисковой квоты instance, расшифруйте его и проверьте каждый хеш из манифеста.
- Сделайте страховочную копию текущего состояния.
- Остановите instance. Убедитесь, что его версия Pano не ниже версии архива: восстановление на более старый Pano, чем архив, отклоняется.
- Удалите таблицы базы instance и импортируйте дамп от собственного (внутреннего) пользователя instance.
- Замените файлы
app/и перепишите настройки целевого сервера: адрес и учётные данные БД, порты и TLS, SMTP. - Запустите instance. Более новый Pano перенесёт данные при запуске.
Сбои
Перезапускайте упавшие instance автоматически, но не бесконечно. Pano Host останавливает instance, который падает более 3 раз за 10 минут, уведомляет владельца и администратора и предлагает пакет побольше, если не хватило памяти.
Логи
Используйте лог-драйвер Docker local с ротацией по размеру, чтобы шумный instance не заполнил диск. Pano Host хранит логи instance 14 дней на сервере и показывает их в реальном времени вместе с консолью для команд на странице управления instance.
Или доверьте это Pano Host
Pano Host берёт всю эту схему на себя: каждый Pano Instance получает свой контейнер, базу данных, резервные копии, поддомен *.panomc.site, бесплатный SSL и почтовый relay, а управление — через panomc.com.