Как установить Dynmap
Подготовка окружения на proxify.cloud
- Войдите в панель proxify.cloud и откройте консоль вашего выделенного сервера (VNC или SSH).
- Авторизуйтесь под пользователем
rootили пользователем сsudo(обычноubuntuилиminecraft). - Обновите списки пакетов и установите необходимые утилиты:
apt update && apt upgrade -y
apt install -y openjdk-21-jre-headless wget curl unzip screen htop
Примечание: Dynmap требует Java 17+. На Ubuntu 22.04/24.04 пакет
openjdk-21-jre-headlessподходит идеально.
Создание пользователя и структуры директорий
- Создайте отдельного пользователя для сервера (без пароля, только SSH-ключи или sudo):
adduser --disabled-password --gecos "" minecraft
usermod -aG sudo minecraft
- Переключитесь на пользователя и создайте рабочие папки:
su - minecraft
mkdir -p ~/server ~/backups ~/scripts
cd ~/server
Установка ядра сервера (PaperMC) для Dynmap
- Скачайте последнюю стабильную версию PaperMC (1.20.4 на момент написания) через API:
VERSION="1.20.4"
BUILD=$(curl -s "https://api.papermc.io/v2/projects/paper/versions/${VERSION}/builds" | jq -r '.builds[-1].build')
JAR_NAME="paper-${VERSION}-${BUILD}.jar"
wget "https://api.papermc.io/v2/projects/paper/versions/${VERSION}/builds/${BUILD}/downloads/${JAR_NAME}" -O paper.jar
- Примите EULA и создайте базовый
server.properties:
echo "eula=true" > eula.txt
cat > server.properties <<'EOF'
server-port=25565
server-ip=0.0.0.0
enable-query=true
query.port=25565
enable-rcon=false
rcon.port=25575
rcon.password=changeme
level-name=world
gamemode=survival
difficulty=normal
max-players=20
view-distance=10
simulation-distance=6
motd=Proxify Cloud Server | Dynmap Enabled
EOF
- Запустите сервер один раз для генерации папок
plugins,worldи конфигов:
java -Xms2G -Xmx4G -jar paper.jar --nogui
# Ждите сообщения "Done (X.Xs)! For help, type "help""
# Остановите сервер командой в консоли:
stop
Установка плагина Dynmap
- Перейдите в папку плагинов и скачайте последнюю версию Dynmap (Spigot/Paper совместимую):
cd plugins
wget "https://ci.dynmap.us/job/Dynmap/lastSuccessfulBuild/artifact/Dynmap-dev.jar" -O Dynmap.jar
cd ..
Альтернатива: Если ссылка CI недоступна, используйте прямую ссылку с GitHub Releases или Modrinth:
wget "https://github.com/webbukkit/dynmap/releases/download/v3.6-beta-1/Dynmap-3.6-beta-1-spigot.jar" -O Dynmap.jar
- Запустите сервер снова для генерации конфигурации Dynmap:
java -Xms2G -Xmx4G -jar paper.jar --nogui
# Дождитесь загрузки плагина (в логах появится "[Dynmap] Loading Dynmap vX.X")
stop
Настройка Dynmap (configuration.txt)
- Основной конфиг находится по пути
plugins/dynmap/configuration.txt. Откройте его для редактирования:
nano plugins/dynmap/configuration.txt
- Ключевые параметры для продакшена на proxify.cloud:
# Веб-сервер Dynmap (встроенный)
webserver:
enabled: true
port: 8123 # Порт веб-интерфейса карты
bindaddress: "0.0.0.0" # Слушать на всех интерфейсах
# Если за Nginx/Traefik — можно поставить 127.0.0.1 и проксировать
# Хранилище рендеров (файловая система — быстрее SQLite на SSD)
tiles:
storage: "filetree"
path: "tiles" # Относительно plugins/dynmap/
# Для HDD лучше: storage: "sqlite"
# Рендеринг
render:
# Качество: normal, high, low
quality: "high"
# Количество потоков рендеринга (оставьте 1-2 на выделенном ядре)
renderthreads: 2
# Интервал полного ререндера (минуты), 0 = отключено
fullrenderinterval: 0
# Карты (worlds) — пример для основного мира и Незера
worlds:
world:
enabled: true
maps:
flat:
enabled: true
prefix: "flat"
surface:
enabled: true
prefix: "surface"
cave:
enabled: true
prefix: "cave"
nether:
enabled: true
prefix: "nether"
world_nether:
enabled: true
maps:
nether:
enabled: true
prefix: "nether"
world_the_end:
enabled: true
maps:
end:
enabled: true
prefix: "end"
- Сохраните (
Ctrl+O,Enter) и выйдите (Ctrl+X).
Настройка systemd-сервиса (автозапуск и рестарты)
- Вернитесь к root (или используйте
sudo):
exit
# или Ctrl+D
- Создайте unit-файл:
cat > /etc/systemd/system/minecraft-dynmap.service <<'EOF'
[Unit]
Description=Minecraft Paper Server with Dynmap
After=network.target
[Service]
Type=simple
User=minecraft
Group=minecraft
WorkingDirectory=/home/minecraft/server
ExecStart=/usr/bin/java -Xms4G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper.jar --nogui
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=minecraft-dynmap
# Лимиты
LimitNOFILE=65535
LimitNPROC=65535
[Install]
WantedBy=multi-user.target
EOF
Важно: Настройте
-Xmsи-Xmxпод объём RAM вашего выделенного сервера на proxify.cloud (резервируйте 2-4 Гб под ОС и кэш диска).
- Перезагрузите systemd, включите автозапуск и стартуйте:
systemctl daemon-reload
systemctl enable minecraft-dynmap
systemctl start minecraft-dynmap
- Проверьте статус и логи:
systemctl status minecraft-dynmap
journalctl -u minecraft-dynmap -f
Настройка обратного прокси (Nginx + SSL) для доступа к карте
- Установите Nginx и Certbot:
apt install -y nginx certbot python3-certbot-nginx
- Создайте конфиг виртуального хоста (замените
map.yourdomain.ruна ваш домен, направленный на IP сервера proxify.cloud):
cat > /etc/nginx/sites-available/dynmap <<'EOF'
server {
listen 80;
server_name map.yourdomain.ru;
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_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 86400;
proxy_send_timeout 86400;
# Кэширование статических тайлов
location ~* \.(png|jpg|jpeg|gif|ico|css|js|json)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
}
}
EOF
- Активируйте сайт и получите сертификат Let's Encrypt:
ln -s /etc/nginx/sites-available/dynmap /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d map.yourdomain.ru --non-interactive --agree-tos -m admin@yourdomain.ru --redirect
Теперь карта доступна по https://map.yourdomain.ru.
Настройка файрвола (UFW) на proxify.cloud
- Разрешите только необходимые порты (SSH, Minecraft, Dynmap веб, Nginx):
ufw allow 22/tcp comment 'SSH'
ufw allow 25565/tcp comment 'Minecraft Game'
ufw allow 80,443/tcp comment 'Nginx HTTP/HTTPS'
# Порт 8123 НЕ открываем наружу — он за Nginx
ufw enable
ufw status verbose
В панели proxify.cloud (вкладка Firewall/Network) убедитесь, что соответствующие порты (22, 25565, 80, 443) открыты на уровне инфраструктуры, иначе UFW не поможет.
Первый рендер карты (fullrender)
- Подключитесь к консоли сервера через
screenили используйте RCON. Проще — черезjournalctlи команды в stdin systemd (если настроенStandardInput=tty-force), но надежнее —screenвнутри сервиса. Для разового запуска:
# Отправляем команду в запущенный сервер через systemd (работает если Type=simple и stdin подключен)
systemctl stop minecraft-dynmap
# Запускаем в фоне с screen для интерактивности
su - minecraft -c "cd ~/server && screen -dmS mc java -Xms4G -Xmx8G -jar paper.jar --nogui"
sleep 10
screen -S mc -X stuff "dynmap fullrender world^M"
# Ждите завершения (может занять часы). Прогресс в логах: journalctl -u minecraft-dynmap -f
Лучший способ — использовать RCON (включите enable-rcon=true в server.properties, задайте пароль) и клиент `m
Комментарии (0)