Пошаговое руководство по обновлению C³ CELERITY на production-сервере с минимальным временем простоя.
Перед любым обновлением:
-
Создайте резервную копию базы данных
# Через UI панели: Дашборд → Бэкап → Скачать # Или вручную через mongodump: docker exec hysteria-mongo mongodump --archive=/data/db/backup.archive --username=hysteria --password --authenticationDatabase=admin docker cp hysteria-mongo:/data/db/backup.archive ./backup-$(date +%Y%m%d-%H%M%S).archive
-
Проверьте текущую версию
docker logs hysteria-backend --tail 50 | grep -i version -
Проверьте свободное место на диске
df -h # Минимум 2GB свободного места для нового образа -
Сохраните текущий .env файл
cp .env .env.backup-$(date +%Y%m%d)
Для production-развертывания через docker-compose.hub.yml:
cd /path/to/hysteria-paneldocker compose -f docker-compose.hub.yml downВремя простоя: ~10-30 секунд
docker compose -f docker-compose.hub.yml pulldocker compose -f docker-compose.hub.yml up -d# Все контейнеры должны быть "running"
docker compose -f docker-compose.hub.yml ps
# Проверьте логи на ошибки
docker logs hysteria-backend --tail 100 -fcurl -I https://ваш-домен/panelДля развертывания через docker-compose.yml с локальной сборкой:
cd /path/to/hysteria-panelgit fetch origin
git status # проверьте незакоммиченные изменения
git pull origin maindocker compose downdocker compose build --no-cache backendВремя: 2-5 минут в зависимости от сервера
docker compose up -ddocker compose ps
docker logs hysteria-backend --tail 100 -fЕсли после обновления возникли проблемы:
-
Отредактируйте
docker-compose.hub.yml:backend: image: clickdevtech/hysteria-panel:v1.2.3 # укажите нужную версию
-
Примените изменения:
docker compose -f docker-compose.hub.yml down docker compose -f docker-compose.hub.yml pull docker compose -f docker-compose.hub.yml up -d
# Найдите предыдущий рабочий коммит
git log --oneline -10
# Откатитесь
git checkout <commit-hash>
# Пересоберите
docker compose build --no-cache backend
docker compose up -d# Восстановление из бэкапа
docker cp ./backup.archive hysteria-mongo:/data/db/backup.archive
docker exec hysteria-mongo mongorestore --archive=/data/db/backup.archive --drop --username=hysteria --password --authenticationDatabase=admin- Проверьте авторизацию — войдите в панель
- Проверьте ноды — статус всех нод должен быть
online - Проверьте подписки — откройте ссылку подписки в браузере
- Проверьте API — выполните тестовый запрос с API-ключом
- Мониторьте логи в течение 10-15 минут:
docker logs hysteria-backend -f --tail 50
# Проверьте логи
docker logs hysteria-backend
# Частые причины:
# - Ошибка в .env файле
# - Проблема с подключением к MongoDB
# - Нехватка памяти# Проверьте статус MongoDB
docker logs hysteria-mongo --tail 50
# Перезапустите MongoDB
docker compose restart mongo# Проверьте содержимое greenlock.d
ls -la greenlock.d/
# Перезапустите с очисткой кэша
docker compose down
docker compose up -d| Действие | Частота |
|---|---|
| Бэкап базы | Ежедневно (авто) + перед обновлением |
| Проверка обновлений | Еженедельно |
| Обновление security-патчей | В течение 48 часов |
| Мажорные обновления | После тестирования на staging |
- Тестируйте на staging — дублирующая среда для проверки обновлений
- Обновляйте в низконагруженное время — ночь/раннее утро по времени пользователей
- Держите бэкапы — минимум 3 последних бэкапа базы
- Документируйте изменения — сохраняйте записи о версиях и датах обновлений
- Не обновляйте всё сразу — сначала панель, затем при необходимости ноды
- Не паникуйте — данные в MongoDB сохранены
- Проверьте логи:
docker logs hysteria-backend --tail 200 - Откатитесь на предыдущую версию
- При необходимости восстановите базу из бэкапа
- Создайте issue на GitHub с описанием проблемы и логами