Как настроить Dynmap
1. Подготовка сервера и подключение через SSH
Зайдите в панель proxify.cloud (Proxmox VE).
Выберите ваш выделенный сервер (Node) в левом дереве.
Откройте вкладку Console (Консоль) или используйте любой SSH-клиент (Termius, PuTTY, встроенный терминал Linux/macOS).
Подключитесь к Ubuntu под пользователем
rootили пользователем сsudo-правами:ssh root@<IP_АДРЕС_ВАШЕГО_СЕРВЕРА>IP-адрес виден в панели proxify.cloud на вкладке Summary (Сводка) выбранного узла.
Обновите пакеты и установите необходимые утилиты:
apt update && apt upgrade -y apt install -y openjdk-21-jre-headless screen wget curl unzip ufwDynmap требует Java 17+. На Ubuntu 22.04/24.04 по умолчанию ставится Java 11/17/21. Проверьте:
java -version.
2. Настройка файрвола (UFW) для веб-интерфейса Dynmap
Dynmap по умолчанию вешает веб-сервер на порт 8123. Этот порт должен быть открыт во входящем трафике.
- Разрешите SSH (чтобы не потерять доступ) и порт Dynmap:
ufw allow OpenSSH ufw allow 8123/tcp comment 'Dynmap Web Interface' - Включите файрвол (если он выключен):
ufw enable - Проверьте статус:
В выводе должны быть строкиufw status numbered22/tcp ALLOWи8123/tcp ALLOW.
Важно: Если у вашего выделенного сервера в панели proxify.cloud настроен внешний файрвол (Datacenter Firewall) или NAT, убедитесь, что порт 8123 проброшен/разрешен там. Обычно на выделенных серверах (Dedicated) порты открыты по умолчанию, но проверьте вкладку Firewall в панели Proxmox.
3. Установка ядра сервера (Paper/Spigot/Purpur)
Dynmap — плагин, ему нужен сервер на базе Bukkit/Spigot/Paper. Vanilla не подойдет.
Создайте директорию для сервера и перейдите в неё:
mkdir -p /opt/minecraft/server cd /opt/minecraft/serverСкачайте актуальную сборку Paper (рекомендуется для производительности) для вашей версии (пример для 1.21.1):
# Получить ссылку на последний билд можно на api.papermc.io wget -O paper.jar "https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds/109/downloads/paper-1.21.1-109.jar"Замените версию и номер билда на актуальные с сайта papermc.io/downloads.
Примите EULA:
echo "eula=true" > eula.txtСоздайте скрипт запуска
start.sh:cat > start.sh << 'EOF' #!/bin/bash # Настройте -Xms и -Xmx под объем RAM вашего выделенного сервера (например, 8G, 16G, 32G) java -Xms4G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled \ -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions \ -XX:+DisableExplicitGC -XX:+AlwaysPreTouch \ -jar paper.jar --nogui EOF chmod +x start.shЗапустите сервер первый раз в
screen, чтобы сгенерировать папкуplugins:screen -S mc ./start.shДождитесь сообщения
Done (X.Ys)! For help, type "help". Остановите сервер командойstop. Выйдите из screen:Ctrl+AзатемD.
4. Установка плагина Dynmap
- Перейдите в папку плагинов:
cd /opt/minecraft/server/plugins - Скачайте последнюю стабильную версию Dynmap (файл
.jar) с официального ресурса (Modrinth или CurseForge/SpigotMC). Пример для Modrinth (версия 3.6+):
Всегда проверяйте актуальную ссылку на https://modrinth.com/plugin/dynmap/versions.wget -O Dynmap.jar "https://cdn.modrinth.com/data/PcBs3Q1l/versions/3.6-standalone/Dynmap-3.6-standalone.jar" - Вернитесь в корень сервера и запустите сервер снова для генерации конфигов:
Дождитесь полной загрузки. В логах появится:cd /opt/minecraft/server screen -S mc ./start.sh[Dynmap] Web server started on port 8123. Остановите сервер командойstop. Выйдите из screen (Ctrl+A,D).
5. Конфигурация Dynmap (configuration.txt)
Основной конфиг находится по пути: /opt/minecraft/server/plugins/dynmap/configuration.txt.
- Откройте его для редактирования:
nano /opt/minecraft/server/plugins/dynmap/configuration.txt
5.1. Смена порта и биндинга (Binding)
Найдите секцию webserver:.
webserver:
# Порт веб-интерфейса. Убедитесь, что он совпадает с UFW (8123).
port: 8123
# Критично для выделенных серверов: слушаем на всех интерфейсах (0.0.0.0),
# а не только на localhost (127.0.0.1), иначе карта не откроется по IP.
address: "0.0.0.0"
Если оставите address: "127.0.0.1", карта будет доступна только внутри консоли сервера.
5.2. Настройка рендеринга (Качество и Производительность)
Найдите renderparams: и tiles:.
renderparams:
# Формат тайлов. PNG быстрее рендерится, WebP меньше весит на диске.
# Для HDD/SSD на выделенке PNG предпочтительнее по CPU.
format: "png"
# Качество JPEG/WebP (если выбрали их). 75-85 баланс.
quality: 80
tiles:
# Хранилище тайлов. "filesystem" — стандарт, пишет файлы на диск.
# "sqlite" — одна база данных, быстрее на HDD, медленнее на NVMe при огромных мирах.
tilespath: "tiles"
storage: "filesystem"
5.3. Ограничение нагрузки (Важно для выделенных серверов)
Чтобы рендеринг не "убил" тики сервера (TPS), ограничьте потоки и частоту.
Найдите renderthreads: и добавьте/измените:
# Количество потоков рендеринга. Ставьте на 1-2 меньше ядер CPU.
# На 8-ядерном Xeon/EPYC ставьте 4-6.
renderthreads: 4
# Максимальное количество тайлов, обрабатываемых за тик (20 тиков = 1 сек).
# Ниже = меньше лагов, дольше рендер.
tiles-per-tick: 50
# Приоритет потоков рендера (low/normal/high). Ставьте low.
render-priority: "low"
5.4. Настройка миров (worlds)
Если у вас несколько миров (world, world_nether, world_the_end), проверьте секцию worlds:. По умолчанию Dynmap подхватывает все. Чтобы отключить рендер Незера/Энда (экономия ресурсов):
worlds:
world:
enabled: true
world_nether:
enabled: false # Отключить Незер
world_the_end:
enabled: false # Отключить Энд
5.5. Защита паролем (Опционально)
Чтобы закрыть карту от посторонних, раскомментируйте и настройте:
# В секции webserver:
# authentication: true
# users:
# admin: "password_hash" # Хеш генерируется командой /dynmap webregister в игре
Для генерации хеша запустите сервер, зайдите за оппера и введите /dynmap webregister admin ваш_пароль. Хеш запишется в конфиг автоматически при перезагрузке плагина (/dynmap reload).
Сохраните файл: Ctrl+O, Enter, Ctrl+X.
6. Настройка Systemd-сервиса (Автозапуск и управление)
Не держите сервер в screen вручную. Настройте systemd.
Создайте юнит-файл:
nano /etc/systemd/system/minecraft.serviceВставьте конфигурацию (подставьте свой пользователя, если не root, и пути):
[Unit] Description=Minecraft Paper Server with Dynmap After=network.target Wants=network.target [Service] WorkingDirectory=/opt/minecraft/server User=root Group=root # Restart=on-failure перезапустит сервер при краше Restart=on-failure RestartSec=10 # Лимиты памяти и файлов LimitNOFILE=65535 LimitNPROC=65535 # Команда запуска ExecStart=/usr/bin/java -Xms4G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -jar paper.jar --nogui # Корректная остановка по SIGTERM (команда stop в консоль) ExecStop=/bin/bash -c 'echo "stop" | /usr/bin/nc -U /tmp/minecraft.sock 2>/dev/null || pkill -f paper.jar' StandardInput=tty-force TTYPath=/dev/tty TTYReset=yes TTYVHangup=yes KillMode=control-group [Install] WantedBy=multi-user.targetПримечание:
ExecStopвыше упрощен. Для production лучше использоватьmcrconили скрипт, пишущий в stdin процесса. Простейший вариант —ExecStop=/bin/kill -TERM $MAINPID, но Paper лучше гасится по командеstop.Рекомендуемый простой вариант ExecStop:
ExecStop=/bin/bash -c 'sleep 2 && pkill -f "paper
Комментарии (0)