Как установить ресурс-пак на сервер
Подготовка и доступ к серверу
Авторизуйтесь в панели proxify.cloud
Откройте https://proxify.cloud и войдите в личный кабинет. Перейдите в раздел «Мои серверы» и выберите выделенный сервер с Ubuntu, на котором развернут Minecraft-сервер.Откройте консоль или подключитесь по SSH
В панели proxify.cloud нажмите кнопку «Консоль» (VNC/NoVNC) для прямого доступа к терминалу Ubuntu.
Альтернативно — подключитесь с локальной машины:ssh root@<IP-адрес_сервера>Замените
<IP-адрес_сервера>на публичный IP, указанный в панели proxify.cloud.Перейдите в директорию сервера
Обычно сервер находится в/opt/minecraft,/home/minecraftили/var/lib/minecraft. Уточните путь в панели proxify.cloud (вкладка «Файлы» или настройки контейнера/VM).cd /opt/minecraft
Подготовка ресурс-пака
Получите прямую ссылку на
.zipархив ресурс-пака
Ресурс-пак должен быть доступен по прямому HTTP/HTTPS-ссылке (не страница загрузки, а сам файл). Подходят:- GitHub Releases (Raw URL)
- Свой веб-сервер / CDN
- Файловые хостинги с прямой выдачей (Dropbox с
dl=1, Google Drive черезuc?export=download&id=...)
Пример корректной ссылки:
https://github.com/Author/Pack/releases/download/v1.2.3/MyResourcePack.zipПроверьте совместимость версии
Откройтеpack.mcmetaвнутри архива (не распаковывая) и убедитесь, чтоpack_formatсоответствует версии ядра сервера:- 1.20.4–1.20.6 →
pack_format: 15 - 1.21–1.21.1 →
pack_format: 18 - 1.21.2–1.21.3 →
pack_format: 22
Команда для быстрой проверки без распаковки:
unzip -p MyResourcePack.zip pack.mcmeta | jq .pack.pack_formatЕсли
jqне установлен:apt update && apt install -y jq.- 1.20.4–1.20.6 →
Вычислите SHA-1 хеш пака
Хеш обязателен дляserver.properties(полеresource-pack-sha1). Клиенты будут отклонять пак без совпадения хеша.sha1sum MyResourcePack.zipПример вывода:
a1b2c3d4e5f67890123456789abcdef012345678 MyResourcePack.zipСкопируйте первые 40 символов (хеш).
Размещение файла ресурс-пака
Вариант А: Хостинг на том же сервере (через веб-сервер)
Установите и настройте Nginx (если ещё не установлен):
apt update && apt install -y nginx systemctl enable --now nginxСоздайте директорию для статики и положите пак:
mkdir -p /var/www/resources cp MyResourcePack.zip /var/www/resources/ chown -R www-data:www-data /var/www/resources chmod 644 /var/www/resources/MyResourcePack.zipНастройте конфиг Nginx для отдачи файла с правильными заголовками:
cat > /etc/nginx/sites-available/resources <<'EOF' server { listen 80; server_name _; location /packs/ { alias /var/www/resources/; add_header Content-Type "application/zip"; add_header Access-Control-Allow-Origin "*"; add_header Cache-Control "public, max-age=31536000, immutable"; } } EOF ln -sf /etc/nginx/sites-available/resources /etc/nginx/sites-enabled/ nginx -t && systemctl reload nginxПроверьте доступность (замените IP на свой):
curl -I http://<IP-сервера>/packs/MyResourcePack.zipОжидаемый ответ:
200 OK,Content-Type: application/zip.Итоговая ссылка для конфига:
http://<IP-сервера>/packs/MyResourcePack.zip
Вариант Б: Внешний хостинг (GitHub, CDN, свой домен)
Загрузите пак на выбранный хостинг и получите прямую ссылку.
Для GitHub Releases: перейдите в репозиторий → Releases → Create new release → Attach binaries → скопируйте ссылку на.zip(кнопка «Copy link address»).Убедитесь, что хостинг отдаёт
Content-Type: application/zipи CORS-заголовки (Access-Control-Allow-Origin: *). Без CORS некоторые лаунчеры (Prism, ATLauncher) не скачают пак.
Настройка server.properties
Остановите Minecraft-сервер через панель proxify.cloud (кнопка «Stop») или командой:
systemctl stop minecraft # или, если запущен в screen/tmux: screen -S mc -X stuff "stop\n"Отредактируйте
server.properties:nano server.propertiesНайдите или добавьте строки:
resource-pack=http://<IP-сервера>/packs/MyResourcePack.zip resource-pack-sha1=a1b2c3d4e5f67890123456789abcdef012345678 resource-pack-prompt={"text":"Для игры на сервере требуется ресурс-пак. Нажмите \"Скачать\"","color":"gold"} require-resource-pack=trueПояснения:
resource-pack— прямая ссылка на.zip.resource-pack-sha1— хеш из шага 6 (без пробелов, нижний регистр).resource-pack-prompt— JSON-текст в диалоге загрузки (поддерживает форматирование).require-resource-pack=true— кикает игроков, отказавших в загрузке.
Сохраните и выйдите (
Ctrl+O,Enter,Ctrl+X).
Запуск и проверка
Запустите сервер через панель proxify.cloud («Start») или:
systemctl start minecraftПроверьте логи на наличие ошибок загрузки пака:
tail -f logs/latest.log | grep -i "resource.pack"Успешная запись выглядит так:
[Server thread/INFO]: Resource pack: http://.../MyResourcePack.zip (sha1: a1b2c3d4...)Подключитесь клиентом и подтвердите загрузку. При успешном совпадении хеша пак применится мгновенно.
Автоматизация обновлений (опционально)
Создайте скрипт автообновления
/opt/minecraft/update_pack.sh:cat > /opt/minecraft/update_pack.sh <<'EOF' #!/bin/bash set -e PACK_URL="https://github.com/Author/Pack/releases/latest/download/MyResourcePack.zip" DEST="/var/www/resources/MyResourcePack.zip" PROPS="/opt/minecraft/server.properties" echo "Скачивание новой версии..." curl -L -o "$DEST.tmp" "$PACK_URL" NEW_SHA1=$(sha1sum "$DEST.tmp" | awk '{print $1}') mv "$DEST.tmp" "$DEST" chown www-data:www-data "$DEST" chmod 644 "$DEST" echo "Обновление server.properties..." sed -i "s/^resource-pack-sha1=.*/resource-pack-sha1=$NEW_SHA1/" "$PROPS" systemctl reload minecraft echo "Готов. Новый хеш: $NEW_SHA1" EOF chmod +x /opt/minecraft/update_pack.shДобавьте в cron (ежедневно в 04:00):
(crontab -l 2>/dev/null; echo "0 4 * * * /opt/minecraft/update_pack.sh >> /var/log/pack_update.log 2>&1") | crontab -
Возможные проблемы и решения
| Проблема | Причина | Решение |
|---|---|---|
| Клиент пишет «Invalid resource pack» / «Failed to download» | Неверная ссылка (страница, не файл), блокировка брандмауэром, нет CORS | Проверьте curl -I <ссылка>: должен быть 200 OK, Content-Type: application/zip. Откройте порт 80/443 в панели proxify.cloud (вкладка «Сеть» → «Firewall»). Добавьте заголовок Access-Control-Allow-Origin: * в Nginx/CDN. |
| Хеш не совпадает (кейс «Resource pack rejected») | Файл изменился после прописывания хеша, или скачался не тот файл | Пересчитайте sha1sum актуального файла и обновите resource-pack-sha1 в server.properties. Перезагрузите сервер. |
| Пак скачивается, но не применяется (текстуры стандартные) | Несовпадение pack_format версии клиента/сервера |
Сравните pack_format в pack.mcmeta с таблицей в шаге 5. Пересоберите пак под нужный формат или обновите ядро сервера. |
| Игроков кикает сразу после входа | require-resource-pack=true, но клиент не смог загрузить пак (таймаут, размер > 250 Мб) |
Увеличьте resource-pack-sizes (Paper/Purpur: paper-world.yml → resource-pack-sizes), проверьте скорость отдачи файла, сократите вес пака. |
| В логах «Could not load resource pack» | Ошибка внутри архива (битый zip, неверная структура) | Распакуйте локально: unzip -l MyResourcePack.zip. Должны быть pack.mcmeta, папка assets/. Перепакуйте: cd pack_folder && zip -r ../fixed.zip . |
Nginx отдаёт text/plain вместо application/zip |
Отсутствует mime-тип | Добавьте в /etc/nginx/mime.types: application/zip zip; и перезагрузите nginx. |
| Панель proxify.cloud не даёт доступ к файлам / консоль не открывается | Контейнер/VM в статусе «Error», нет прав у пользователя | В панели proxify.cloud проверьте вкладку «Логи» сервера. При необходимости — перезагрузите VPS кнопкой «Reboot» или обратитесь в поддержку хостинга |
Комментарии (0)