Dynmap: онлайн-карта сервера Minecraft в браузере
Как установить Dynmap на сервер Minecraft, настроить рендер мира, открыть веб-интерфейс и подключить реверс-прокси. Полный гайд 2026.
Кратко: Dynmap - плагин, который рендерит мир Minecraft и отдаёт интерактивную карту в браузере через встроенный веб-сервер. Установка занимает 5 минут, первый рендер - от 10 минут до нескольких часов в зависимости от размера мира.
Dynmap: онлайн-карта сервера Minecraft в браузере
Dynmap превращает ваш Minecraft-сервер в интерактивный веб-атлас: любой игрок или администратор может открыть браузер и в реальном времени видеть, кто где стоит, как выглядит мир с высоты птичьего полёта, и даже переписываться через чат прямо с веб-страницы. Плагин существует с 2011 года и к 2026 году остаётся золотым стандартом онлайн-карт для Bukkit/Spigot/Paper-серверов. Dynmap поддерживает все актуальные версии Minecraft - от 1.20 до 1.21.x, работает как на Java, так и на серверах с гибридными ядрами, и интегрируется с десятками других плагинов через API. В этом гайде разберём полную установку, настройку рендера, веб-доступ через реверс-прокси и тонкую настройку производительности.
Pterohost - игровой хостинг с NVMe-дисками и DDoS-защитой, где Dynmap работает без дополнительных настроек файрвола. Промокод 4START даёт -20% на первый заказ. Заказать Minecraft хостинг
Что такое Dynmap и как он работает
Dynmap состоит из двух частей: серверного плагина и встроенного веб-сервера. Плагин читает данные чанков из мира Minecraft, рендерит изометрические или плоские тайлы (PNG-изображения) и сохраняет их в папку plugins/dynmap/web/tiles/. Встроенный Jetty-сервер раздаёт эти тайлы вместе со статическим фронтендом на основе Leaflet.js.
Карта обновляется инкрементально: Dynmap отслеживает изменения чанков и ставит их в очередь на перерисовку. По умолчанию обновление тайла происходит через 30 секунд после последнего изменения в чанке.
Dynmap поддерживает три режима рендера:
- Изометрия (Surface) - вид сверху под углом, самый популярный
- Плоский (FlatMap) - вид строго сверху, похож на карту биомов
- Пещерный (CaveMap) - подземные структуры
Требования и совместимость
| Параметр | Значение |
|---|---|
| Серверное ядро | Bukkit, Spigot, Paper, Purpur, Mohist, Arclight |
| Minecraft | 1.18 - 1.21.x (актуально на 2026) |
| Java | Java 17 или новее |
| ОЗУ сервера | От 2 ГБ (4+ ГБ для комфортного рендера) |
| Место на диске | 100-500 МБ на мир среднего размера (тайлы) |
| Dynmap версия | 3.7+ (последняя стабильная на 2026) |
Для Folia нужна специальная сборка Dynmap - обычный jar не подойдёт, проверьте GitHub-релизы с пометкой folia.
Установка Dynmap
Скачивание плагина
Актуальные релизы Dynmap находятся на официальном ресурсе:
- Hangar (рекомендуется):
https://hangar.papermc.io/dynmap/dynmap - GitHub Releases:
https://github.com/webbukkit/dynmap/releases - Modrinth:
https://modrinth.com/plugin/dynmap
Скачайте файл Dynmap-X.Y.Z-spigot.jar (для Paper/Spigot) или Dynmap-X.Y.Z-paper.jar если есть отдельная Paper-сборка.
Размещение на сервере
- Остановите сервер.
- Поместите JAR-файл в папку
plugins/. - Запустите сервер - Dynmap создаст папку
plugins/dynmap/с конфигами. - Дождитесь строки в логе:
[Dynmap] Enabled
[Dynmap] Web server started on port 8123
После этого карта доступна по адресу http://<IP-сервера>:8123.
Основная конфигурация (configuration.txt)
Главный файл настроек - plugins/dynmap/configuration.txt. Разберём ключевые параметры:
# Порт встроенного веб-сервера
webserver-port: 8123
# Привязка к конкретному IP (пусто = все интерфейсы)
webserver-bindaddress: 0.0.0.0
# Отключить встроенный веб-сервер (если используете реверс-прокси с nginx)
# Оставьте true если хотите встроенный сервер
disable-webserver: false
# Интервал обновления карты в браузере (секунды)
updaterate: 2.0
# Задержка перед рендером изменённого чанка (секунды)
renderacceleratethreshold: 60
# Количество потоков рендера (1-2 для экономии CPU)
render-concurrency: 2
# Показывать чат на карте
webchat-requires-login: false
webchat-interval: 5
# Защита паролем всего веб-интерфейса
# loginrequired: true
Настройка миров (worlds.txt или секция worlds в configuration.txt)
В файле plugins/dynmap/worlds.txt можно указать параметры для каждого мира:
worlds:
- name: world
title: "Основной мир"
enabled: true
maps:
- class: org.dynmap.hdmap.HDMap
name: flat
title: "Плоская карта"
prefix: flat
perspective: iso_SE_30_hires
lighting: shadows
mapzoomin: 3
mapzoomout: 3
- class: org.dynmap.hdmap.HDMap
name: surface
title: "Изометрия"
prefix: t
perspective: iso_SE_30_hires
lighting: shadows
mapzoomin: 3
mapzoomout: 5
- name: world_nether
title: "Незер"
enabled: true
- name: world_the_end
title: "Энд"
enabled: true
Запуск рендера и основные команды
После настройки нужно запустить первоначальный рендер. Без него карта пуста.
| Команда | Описание |
|---|---|
/dynmap fullrender world | Полный рендер мира world |
/dynmap fullrender world:flat | Рендер только слоя flat |
/dynmap updaterender world | Обновить изменившиеся чанки |
/dynmap cancelrender world | Отменить текущий рендер |
/dynmap radiusrender 200 world | Рендер в радиусе 200 блоков от игрока |
/dynmap pause all | Приостановить все рендеры |
/dynmap stats | Статистика рендера (очередь, прогресс) |
/dynmap reload | Перезагрузить конфиг без рестарта сервера |
Для консоли команды те же, но без слэша:
dynmap fullrender world
Прогресс рендера виден в консоли сервера и в статусе на самой карте (нижний правый угол).
Реверс-прокси через Nginx
Встроенный Jetty-сервер Dynmap работает надёжно, но для production-окружения лучше закрыть порт 8123 и проксировать трафик через Nginx с HTTPS.
Конфиг Nginx для Dynmap
Создайте файл /etc/nginx/sites-available/dynmap.example.com:
server {
listen 80;
server_name map.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name map.example.com;
ssl_certificate /etc/letsencrypt/live/map.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/map.example.com/privkey.pem;
# Кэшировать тайлы карты агрессивно
location /tiles/ {
proxy_pass http://127.0.0.1:8123;
proxy_set_header Host $host;
proxy_cache_valid 200 10m;
expires 10m;
add_header Cache-Control "public";
}
# Остальные запросы - без кэша (чат, онлайн-данные)
location / {
proxy_pass http://127.0.0.1:8123;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 86400;
}
}
Активируйте конфиг:
ln -s /etc/nginx/sites-available/dynmap.example.com /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
Если сервер на хостинге с панелью Pterodactyl
В этом случае прямой доступ к /etc/nginx/ недоступен. Вариантов два:
- Открыть порт 8123 через файрвол панели (раздел “Сеть” или “Ports”) и использовать
http://IP:8123напрямую. - Попросить поддержку хостинга настроить реверс-прокси или воспользоваться Cloudflare Tunnel.
В configuration.txt убедитесь, что webserver-port совпадает с проброшенным портом.
Маркеры и слои
Dynmap поддерживает маркеры - иконки и области на карте. Ими можно обозначать города, спавны, фермы.
Управление маркерами через команды
# Добавить маркер в текущей позиции
/dmarker add name:"Спавн" icon:default set:markers
# Добавить маркер с указанием координат
/dmarker add name:"Шахта" icon:mineshaft set:markers x:100 y:64 z:-200 world:world
# Список маркеров в сете
/dmarker list set:markers
# Удалить маркер
/dmarker delete name:"Шахта" set:markers
# Создать новый сет (слой) маркеров
/dmarker addset name:"Города" label:"Города игроков"
Доступные иконки: default, world, tower, house, castle, mineshaft, portal, chest, flag и другие. Полный список - в папке plugins/dynmap/web/images/markers/.
Создание областей (регионы)
Dynmap может показывать регионы WorldGuard и Residence как слои на карте. Для этого нужен дополнительный плагин:
- Dynmap-WorldGuard:
https://dev.bukkit.org/projects/dynmap-worldguard - Dynmap-Residence: аналогичный плагин для Residence
Установка стандартная - JAR в папку plugins/, настройка в отдельном конфиге плагина.
Скрытие игроков и приватность
По умолчанию все игроки видны на карте. Это можно изменить несколькими способами.
Полное отключение маркеров игроков
В configuration.txt:
# Не показывать игроков совсем
dynmap:
players:
hideall: true
Или через секцию в configuration.txt:
hiddenplayers:
- Steve
- notch
Права на скрытие (LuckPerms/PermissionsEx)
Dynmap использует следующие права:
dynmap.playermarkers.hide - скрыть себя с карты
dynmap.playermarkers.hidename - скрыть имя, но оставить маркер
dynmap.webchat - писать в чат через веб-интерфейс
dynmap.render - запускать рендер
dynmap.fullrender - запускать полный рендер
Пример выдачи права на скрытие через LuckPerms:
/lp user Steve permission set dynmap.playermarkers.hide true
Режим невидимки через команду
Игрок может скрыться сам командой:
/dynmap hide - скрыть себя
/dynmap show - показать себя снова
Производительность и предрендер
Оптимизация рендера
Рендер большого мира - тяжёлая операция. Несколько способов снизить нагрузку:
Уменьшить качество тайлов:
В worlds.txt для каждого рендера можно снизить hdscale:
maps:
- class: org.dynmap.hdmap.HDMap
name: flat
perspective: iso_SE_30_lowres # lowres вместо hires
hdscale: 1 # 1 = стандарт, 2 = hires, 0.5 = lowres
Ограничить количество потоков:
render-concurrency: 1 # вместо дефолтного 2-4
Ограничить зону рендера:
Dynmap поддерживает rworld - радиус рендеримой области. Для выживательного сервера разумно ограничить 5000-10000 блоков:
worlds:
- name: world
renderrange: 10000 # блоки от 0,0
Отключить лишние слои:
Нет смысла рендерить пещерную карту если она никому не нужна. Уберите ненужные записи из секции maps в worlds.txt.
Предрендер мира
Если мир уже сгенерирован на большую площадь, запустите полный рендер в нерабочее время:
# В консоли сервера (можно через screen/tmux)
dynmap fullrender world
dynmap fullrender world_nether
dynmap fullrender world_the_end
Прогресс отображается каждые 5 минут в логе. Пример строки прогресса:
[Dynmap] Full render of 'world' active - 4523 chunks rendered (23% complete), 2.3 chunks/sec
Время рендера зависит от:
- Размера мира (количество сгенерированных чанков)
- Мощности CPU
- Параметра
render-concurrency - Выбранного режима (hires в 4 раза медленнее lowres)
Типичные цифры: мир 5000x5000 блоков в режиме iso_SE_30_hires при render-concurrency: 2 рендерится около 30-60 минут на современном VDS.
Настройка кэширования тайлов
Dynmap хранит тайлы в plugins/dynmap/web/tiles/. Это может занять много места. Настройки:
# Сжатие тайлов (уменьшает размер на 30-50%)
usegzip: true
# Формат тайлов (jpg = меньше размер, png = лучше качество)
image-format: jpg
image-quality: 85 # для jpg, 0-100
# Удалять тайлы пустых чанков
emptyzooms: true
Интеграция с другими плагинами
Dynmap имеет открытый API, который используют десятки плагинов:
| Плагин | Что добавляет на карту |
|---|---|
| Dynmap-WorldGuard | Регионы WorldGuard как цветные области |
| Dynmap-Residence | Приваты Residence |
| Dynmap-Towny | Города и нации Towny |
| Dynmap-GriefPrevention | Участки GriefPrevention |
| Dynmap-Factions | Территории Factions |
Установка любого из них: скачать JAR, положить в plugins/, перезапустить сервер. Каждый создаёт свой конфиг в plugins/dynmap-ПЛАГИН/.
Пример настройки Dynmap-WorldGuard (plugins/dynmap-worldguard/configuration.yml):
# Показывать регионы WorldGuard
regions:
# Цвет по умолчанию
default:
fillcolor: "#FF0000"
fillopacity: 0.35
strokecolor: "#FF0000"
strokeopacity: 0.8
strokeweight: 3
# Кастомный цвет для региона "spawn"
spawn:
fillcolor: "#00FF00"
fillopacity: 0.5
Авторизация и защита интерфейса
По умолчанию карта открыта для всех. Если нужна защита:
Пароль на весь сайт
В configuration.txt:
loginrequired: true
После этого потребуется создать учётные записи для веб-интерфейса:
/dynmap webregister <логин> <пароль>
Разрешить чат только авторизованным
webchat-requires-login: true
Скрыть координаты игроков
Показывать маркеры, но не координаты:
player-info-protected: true
Диагностика проблем
Карта не открывается по порту 8123:
- Проверьте, что порт открыт в файрволе:
ufw allow 8123 - Убедитесь, что Dynmap запустился:
grep -i dynmap logs/latest.log - Проверьте, не занят ли порт другим процессом:
ss -tlnp | grep 8123
Тайлы не обновляются:
- Проверьте место на диске:
df -h - Убедитесь, что рендер не на паузе:
/dynmap stats - Посмотрите ошибки в
plugins/dynmap/dynmap.log
Высокое потребление CPU:
- Уменьшите
render-concurrencyдо 1 - Увеличьте
renderacceleratethresholdдо 120-300 - Переключитесь с hires на lowres perspective
После обновления ядра сервера карта пустая:
- Запустите
/dynmap fullrender worldзаново - Проверьте совместимость версии Dynmap с новой версией ядра
Связанные материалы
Если вы только начинаете настройку сервера - ознакомьтесь с резервным копированием мира Minecraft, чтобы не потерять данные при экспериментах с плагинами. Подборка лучших плагинов для сервера поможет выбрать инструменты для управления правами, защиты территорий и экономики - многие из них интегрируются с Dynmap. Для управления игроками и правами используйте EssentialsX, который дополняет Dynmap командами телепортации и хоумов, отображаемыми как маркеры.
Заключение
Dynmap - зрелый и стабильный инструмент, который даёт серверу красивый и функциональный веб-интерфейс без сложной настройки. Установка занимает 10 минут, первый рендер запускается одной командой, а реверс-прокси через Nginx добавляет HTTPS и кастомный домен. Для публичных серверов Dynmap стал де-факто стандартом - игроки ценят возможность смотреть на мир в браузере, не заходя в игру. Настройте приватность игроков, ограничьте зону рендера под реальные нужды и не забудьте про регулярный updaterender для поддержания карты в актуальном состоянии.
Pterohost - Minecraft-хостинг с быстрыми NVMe-дисками и круглосуточной поддержкой - идеальная основа для сервера с Dynmap. Промокод 4START даёт -20% на первый заказ. Заказать Minecraft хостинг