Хранилища S3
Бэкапы игровых серверов, резервные копии панели и файлы карт и модов панель хранит не у себя, а в S3-совместимом хранилище: AWS S3, Backblaze B2, Selectel, Cloudflare R2, свой MinIO и т. п. Хранилища настраиваются на странице Модули → Бэкапы и хранилища S3 → Хранилища S3.
Пока нет ни одного хранилища, бэкапы и загрузка аддонов недоступны.
Добавить хранилище
Сначала создайте бакет и ключ доступа к нему у своего провайдера. Затем в панели нажмите Добавить хранилище:
- Endpoint — адрес S3 API провайдера, например
https://s3.eu-central-003.backblazeb2.com. Пусто — настоящий AWS S3. - Регион — регион бакета, например
eu-central-1. - Бакет — имя бакета.
- Название — как хранилище подписано в панели. Пусто — имя бакета.
- Path-style адресация — включите для MinIO и тех провайдеров, которые требуют адреса вида
endpoint/бакет. - Access Key ID и Secret Access Key — ключи доступа. Пусто — стандартная цепочка AWS (переменные окружения, роль инстанса).
- TTL подписанной ссылки, сек — сколько живут ссылки на загрузку и скачивание. По умолчанию 15 минут.
- Сделать хранилищем по умолчанию — первое добавленное хранилище становится им само.
Изменения применяются сразу, без перезапуска панели.
Файлы бэкапов идут напрямую между нодой и бакетом по подписанным ссылкам, а не через панель. Поэтому endpoint должен быть доступен и с панели, и со всех нод.
Куда пишутся новые файлы
- Хранилище по умолчанию — туда идут новые бэкапы и файлы аддонов, если ниже не задано иное.
- Хранилище для аддонов (блок Куда идут новые файлы аддонов) — отдельное хранилище для загрузок, массового импорта, Modrinth и файлов пользователей. Пригодится, если для аддонов нужны другие правила хранения или CDN.
- Куда идут новые бэкапы — своё хранилище для локации или ноды, например MinIO в том же датацентре, чтобы не гонять трафик между регионами. Привязка ноды сильнее привязки её локации, а без привязок используется хранилище по умолчанию.
Каждый бэкап и каждый файл аддона запоминает, в каком хранилище лежит, и всегда читается оттуда. Поэтому смена хранилища по умолчанию или привязок ничего не ломает: уже сохранённое остаётся на месте, а новое пишется в новое хранилище.
Загрузка аддонов из браузера (CORS)
Файлы аддонов админка загружает из браузера сразу в бакет, минуя панель, — так проходят и большие архивы. Для этого бакет должен разрешать загрузку с адреса панели: в меню хранилища выберите Разрешить загрузку из браузера (CORS). Панель добавит нужное правило, не трогая остальные.
MinIO разрешает загрузку с любых адресов сам. Если провайдер не даёт настроить CORS через API, настройте его в панели провайдера. Без CORS загрузка тоже сработает: админка загрузит файл через панель, только медленнее.
Сменить ключи или переехать
Ключи, регион, TTL и название можно менять в любой момент, например при ротации ключей.
Endpoint и Бакет у хранилища, в котором уже что-то лежит, поменять нельзя, иначе панель потеряла бы сохранённые объекты. Чтобы переехать в другой бакет:
- Добавьте новое хранилище и сделайте его хранилищем по умолчанию (и хранилищем для аддонов, если оно было отдельным).
- Перенесите на новое хранилище привязки локаций и нод.
- Новые бэкапы и файлы пойдут туда. Старое хранилище понадобится, пока в нём остаются нужные бэкапы.
Удалить хранилище
Удалить можно только пустое хранилище, на которое нет привязок локаций и нод. Иначе пункт меню выглядит как Удалить (сначала освободите): удалите старые бэкапы или дождитесь, пока их вытеснят новые, и снимите привязки.
Встроенный MinIO
Если своего S3 нет, панель может поднять MinIO на том же сервере. Это удобно для старта и тестов, но в продакшене лучше внешнее хранилище: встроенный MinIO работает по HTTP без TLS и лежит на той же машине, что и панель.
- В
/opt/game-panel/.envдобавьтеminioвCOMPOSE_PROFILESи выполнитеdocker compose up -d. - Создайте бакет:
cd /opt/game-panel docker compose exec minio sh -c 'mc alias set local http://localhost:9000 "$MINIO_ROOT_USER" "$MINIO_ROOT_PASSWORD" && mc mb local/panel'
- Добавьте хранилище в панели: Endpoint
http://<домен панели>:9000, Бакетpanel, Path-style адресация включена, ключи —MINIO_ROOT_USER(по умолчаниюpanel) иMINIO_ROOT_PASSWORDиз.env. - Откройте порт 9000/tcp на сервере панели для нод.
См. также Бэкапы сервера, Резервные копии и Карты и моды.