Обновление

Чтобы обновить WardPane, запустите установщик новой версии. Ваш .env, данные и сайты он сохранит, перед изменениями сделает резервную копию, а если новая версия не запустится, сам вернёт старую.

Обновление

Установщиком одной командой:

curl -fsSL https://wardpane.com/install | sudo bash

Или из архива:

tar xzf wardpane-<version>.tar.gz
cd wardpane
sudo ./install.sh

Обновление никогда не спрашивает данные для входа в панель повторно.

Что происходит при обновлении

  1. Новая версия готовится в /opt/wardpane.new, а старая тем временем работает. Если на этом шаге что-то сломается, на сервере ещё ничего не изменено.
  2. Данные (без баз GeoIP), приложение с .env и юниты systemd копируются в /var/backups/wardpane/<time>/ вместе со скриптом restore.sh, который возвращает всё на место. Полная резервная копия отмечается файлом COMPLETE.
  3. Панель останавливается, данные копируются ещё раз, старая версия переезжает в /opt/wardpane.prev, а новая занимает её место.
  4. Новая версия запускается и проверяется. Если она не поднимается, предыдущая версия и данные, снятые прямо перед переключением, восстанавливаются автоматически. То, что оставила новая версия, откладывается в <DATA_DIR>.failed-<time> и /opt/wardpane.failed, а резервная копия отмечается как FAILED.

Хранятся три последние успешные резервные копии. Резервные копии неудачных обновлений чистятся отдельно, тоже по три.

.env при обновлениях

Установщик меняет только значения параметров, переданных явно (--email, --staging, --user, --password, --ip, --root-login, --no-root-login). Настройки из новых версий дописываются в конец закомментированными, и для них действуют значения по умолчанию. Имя или пароль, изменённые в панели, важнее значений из .env.

Ручное восстановление из резервной копии

sudo bash /var/backups/wardpane/<time>/restore.sh

restore.sh --app-only восстанавливает только приложение и юниты и сохраняет текущие данные, с предупреждением: пароли сайтов, которые новая версия сохранила в виде хешей, не будут работать в старой, пока вы не зададите их заново. Резервная копия, создание которой было прервано (нет файла COMPLETE), восстанавливается только с --force.

С Small Web Panel 1.x

WardPane 2.0 это переименованная Small Web Panel. Установщик 2.0 переводит установку 1.x на новую версию на месте:

  1. Пока 1.x ещё работает, установщик проверяет, что новые имена свободны, и делает обычную резервную копию, а также копирует все юниты smallwebpanel*, /etc/smallwebpanel, состояние входа под root и список учётных записей.
  2. Панель останавливается; юниты 1.x удаляются; пользователь swpanel становится wardpane, а учётные записи сайтов swp_<id> становятся wp_<id>. uid и gid не меняются, поэтому владельцы файлов и ACL на папках сайтов остаются правильными. /var/lib/smallwebpanel становится /var/lib/wardpane.
  3. WardPane запускается. Если запуск не удался, имена, юниты и данные возвращаются к состоянию 1.x, и 1.x запускается снова.
  4. Root-помощник заново создаёт настройки PHP в /etc/wardpane, после чего /etc/smallwebpanel удаляется. Приложение 1.x остаётся в /opt/wardpane.prev до следующего обновления.

Вернуть 1.x можно и позже, через restore.sh из этой резервной копии. Старые резервные копии в /var/backups/smallwebpanel остаются на месте; удалите их, когда убедитесь, что WardPane работает. После перехода один раз перезагрузите страницу панели (Ctrl+F5) и войдите снова.

У существующих сайтов остаются папки 1.x (/var/www/<domain>) и отдельные пользователи на каждый сайт. Новые сайты раскладываются по владельцам, как описано на странице сайты.