Резервные копии
Беречь нужно три разные вещи, и у каждой свой способ резервного копирования.
1. Секреты установки
/opt/game-panel/.env и /opt/game-panel/certs/. В них пароль базы, ключи шифрования настроек игр, центр сертификации нод и ключи NATS. В резервные копии панели они не входят.
Копируйте их с сервера после установки и после каждой смены ключей:
sudo tar czf game-panel-secrets.tar.gz -C /opt/game-panel .env certs
Без них восстановленная база не расшифрует секреты игр, а ноды не доверяют новому центру сертификации — каждую ноду пришлось бы подключать заново.
2. Резервная копия панели
Собственные данные панели: пользователи, API-ключи, каталог игр, тарифы, игровые серверы, хранилища S3, вебхуки, журнал аудита, логотип. Управляется на странице Система → Резервная копия.
- Расписание — раз в сутки в выбранный час; хранятся последние N автоматических копий.
- Где — в хранилище S3, настроенном в панели. Без S3 — кнопка Скачать файлом.
- Пароль копий — задаётся на той же странице (не короче 12 символов, можно сгенерировать). Без него архив не шифруется и содержит хэши паролей, ключи S3 и секреты вебхуков.
Кроме того, каждое обновление пишет копию в /opt/game-panel/backups/ на самом сервере.
Восстановление
Из копии в S3 или из файла, на той же странице. Архив должен быть снят той же версией панели с теми же ключами шифрования — иначе панель откажет, перечислит причины и ничего не изменит. Перед восстановлением снимается страховочная копия, данные заменяются одной транзакцией.
После восстановления перезапустите панель (docker compose restart master) и войдите заново. Игровые серверы на нодах продолжают работать, панель сверит их с восстановленными данными.
3. Бэкапы игровых серверов
Бэкапы серверов клиентов хранятся в S3 и управляются в панели — для каждого сервера и через расписания. Объекты остаются в бакетах; если нужна вторая копия, резервируйте сами бакеты средствами вашего S3-провайдера. См. Бэкапы сервера и Хранилища S3.
Перенос панели на новый сервер
- Снимите свежую копию панели файлом (Скачать файлом) и остановите старую панель.
- На новом сервере положите сохранённые
.envиcerts/в/opt/game-panelи запустите установщик той же версии, что и старая панель, — существующие секреты он не трогает. Если домен ещё указывает на старый сервер, установщик предупредит — ответьте «да». Ссылку мастера первого запуска не открывайте. - Восстановите копию из командной строки:
cd /opt/game-panel docker compose stop master docker compose run --rm -T --no-deps -e PANEL_BACKUP_PASSPHRASE='<пароль копий>' \ master panel-backup import - < panel-backup.tar.gz.age docker compose up -d
- Направьте домен на новый сервер. Let's Encrypt выпустит сертификат, когда обновится DNS.
Ноды переподключатся сами: центр сертификации и домен прежние. Восстановленная панель сохраняет свой ID установки, поэтому лицензия продолжает продлеваться. Для незашифрованной копии уберите -e PANEL_BACKUP_PASSPHRASE=….