Docs/docs/services/lxc207-games/minecraft.md

18 KiB
Raw Blame History

Minecraft Server (Forge 1.20.1) — LXC 207

Контейнер: games (207)
Путь: /mnt/minecraft
Порты: 25565 (игра), 8080 (раздача модов через nginx)
Тип: Forge 1.20.1 + AutoModpack + Offline Mode


📋 Описание

Сервер Minecraft на базе Forge 1.20.1 с автоматической раздачей модов клиентам. Конфигурация включает серверную часть и вспомогательный контейнер nginx для HTTP-раздачи файлов модов (AutoModpack).

Особенности:

  • Пиратский доступ: ONLINE_MODE: "false" (вход без проверки лицензии).
  • Авто-установка модов: Клиенту достаточно установить AutoModpack, моды скачаются сами.
  • Разделение задач: Игровой сервер и веб-сервер (nginx) в одном docker-compose.
  • Оптимизация: Выделено 8 ГБ оперативной памяти, Java 17.

🗂️ Структура файлов

/mnt/minecraft/
├── docker-compose.yml      # Основной конфиг запуска
├── data/                   # Рабочая директория (синхронизируется с контейнером)
│   ├── world/              # Сохранение мира
│   ├── server.properties   # Настройки сервера
│   └── ...
├── mods/                   # Папка с модами (монтируется в контейнер)
│   └── *.jar               # Файлы модов
├── config/                 # Конфиги модов
│   └── automodpack.json    # Настройки раздачи модов
└── automodpack/            # Дополнительные данные AutoModpack
    └── automodpack.json

⚙️ Установка и настройка

Шаг 1: Создание структуры папок

mkdir -p /mnt/minecraft/{data,mods,config,automodpack}
chown -R 1000:1000 /mnt/minecraft

Шаг 2: Конфигурация Docker Compose

Создайте файл /mnt/minecraft/docker-compose.yml:

services:
  minecraft:
    image: itzg/minecraft-server:java17
    container_name: minecraft
    ports:
      - "25565:25565"
    environment:
      EULA: "TRUE"
      TYPE: FORGE
      VERSION: "1.20.1"
      MEMORY: "8G"
      ONLINE_MODE: "false"
      OVERRIDE_SERVER_PROPERTIES: "TRUE"
      SERVER_PASSWORD: ""
      RCON_PASSWORD: "rcon_secret_password"
      ENABLE_RCON: "true"
      DIFFICULTY: "easy"
      MAX_PLAYERS: "20"
      MOTD: "Welcome to Olimp Minecraft!"
      PORT: "25565"
      ALLOW_FLIGHT: "true"
      ENABLE_COMMAND_BLOCK: "true"
      TZ: "Asia/Yekaterinburg"
    volumes:
      - /mnt/minecraft//data
      - /mnt/minecraft/mods:/mods:ro
      - /mnt/minecraft/config:/config:ro
      - /mnt/minecraft/automodpack:/automodpack
    restart: unless-stopped
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

  modpack-server:
    image: nginx:alpine
    container_name: minecraft-mods
    ports:
      - "8080:80"
    volumes:
      - /mnt/minecraft/mods:/usr/share/nginx/html:ro
    restart: unless-stopped

Шаг 3: Настройка AutoModpack

Создайте файл /mnt/minecraft/config/automodpack.json:

{
  "port": 8080,
  "host": "0.0.0.0",
  "modsDirectory": "/mods",
  "allowDownload": true,
  "requireAuth": false,
  "logLevel": "info"
}

Шаг 4: Запуск сервера

cd /mnt/minecraft
docker compose up -d

Шаг 5: Проверка запуска

docker logs -f minecraft
Ожидаемый вывод успешного запуска:
[Server thread/INFO]: Done (XX.XXXs)! For help, type "help"
[AutoModpack]: Hosting modpack on Minecraft port

🧩 Моды

⚠️ Важно: Все моды должны быть для Forge 1.20.1.
Моды для Fabric/Quilt не совместимы и вызовут краш сервера.

Принцип работы

  1. Моды добавляются в папку /mnt/minecraft/mods/.
  2. Сервер перезапускается: docker restart minecraft.
  3. AutoModpack автоматически обновляет список доступных модов.
  4. Клиенты при подключении скачивают новые моды через порт 8080.

Оптимизация сервера

Моды, оптимизирующие сервер, снижающие потребление ОЗУ и нагрузку на ЦП.

  • Название мода: FerriteCore

  • Версия: 6.0.1

  • Ссылка: Modrinth

  • Зависимости: Нет

  • Примечание: Значительно снижает потребление оперативной памяти (до 50%). Обязателен для сборок с большим количеством модов.

  • Название мода: ModernFix

  • Версия: 5.27.8

  • Ссылка: Modrinth

  • Зависимости: Нет

  • Примечание: Комплексная оптимизация: ускоряет запуск, снижает нагрузку на диск и ЦП, исправляет утечки памяти. Конфиг генерируется автоматически.

  • Название мода: AI Improvements

  • Версия: 0.5.2

  • Ссылка: CurseForge

  • Зависимости: Нет

  • Примечание: Оптимизирует логику поведения мобов (путь, поиск цели), снижая нагрузку на сервер при большом количестве сущностей.

  • Название мода: Spark

  • Версия: 1.10.53

  • Ссылка: Modrinth

  • Зависимости: Нет

  • Примечание: Профайлер для диагностики лагов. Позволяет анализировать нагрузку на ЦП, память и тик-тайм через команды /spark.

🧱 Новые блоки и предметы

Моды, добавляющие контент: блоки, предметы, механизмы, улучшения ванили.

  • Название мода: Create

  • Версия: 6.0.8

  • Ссылка: Modrinth

  • Зависимости: Встроенные (Flywheel)

  • Примечание: Глобальный мод на механизмы, конвейеры, поезда и декор. Требует много ресурсов при активной работе механизмов.

  • Название мода: Supplementaries

  • Версия: 3.1.43

  • Ссылка: Modrinth

  • Зависимости: Moonlight Lib

  • Примечание: Добавляет уютные декоративные блоки, функциональные предметы (доски, глобусы, клетки) и мелкие улучшения геймплея.

  • Название мода: Farmer's Delight

  • Версия: 1.2.11

  • Ссылка: Modrinth

  • Зависимости: Нет

  • Примечание: Расширенная система фермерства, готовки и еды. Добавляет новые культуры, кухонные блоки и рецепты.

  • Название мода: Amendments

  • Версия: 2.2.5

  • Ссылка: Modrinth

  • Зависимости: Moonlight Lib

  • Примечание: Визуальные и механические улучшения ванильных блоков (лестницы, заборы, кровати, таблички). Делает мир более детализированным.

🗺️ Генерация мира и структуры

Моды, изменяющие ландшафт или добавляющие новые постройки.

  • Название мода: Tectonic

  • Версия: 3.0.17

  • Ссылка: Modrinth

  • Зависимости: Lithostitched

  • Примечание: Полная переработка генерации ландшафта: более реалистичные горы, долины, плавные переходы биомов.

  • Название мода: When Dungeons Arise

  • Версия: 2.1.58

  • Ссылка: Modrinth

  • Зависимости: Нет

  • Примечание: Добавляет масштабные и сложные данжи с уникальным лутом. Включает наземные и подводные структуры (Seven Seas).

  • Название мода: YUNG's Better [Structures]

  • Версия: 3.0.3 4.0.4 (комплект)

  • Ссылка: Modrinth Collection

  • Зависимости: YUNG's API

  • Примечание: Улучшенные версии ванильных структур (шахты, крепости, храмы, океанские монументы, темницы, мосты). Более продуманный дизайн, лут и логика.

  • Название мода: Repurposed Structures

  • Версия: 7.1.21

  • Ссылка: Modrinth

  • Зависимости: Нет

  • Примечание: Добавляет вариации ванильных структур в другие биомы (например, крепости в джунглях, деревни в пустошах).

🧭 Утилиты и навигация

Моды для удобства игры и перемещения.

  • Название мода: Waystones

  • Версия: 14.1.20

  • Ссылка: Modrinth

  • Зависимости: Balm

  • Примечание: Система телепортации через активированные камни. Позволяет создавать точки быстрого перемещения с настройкой стоимости и доступности.

  • Название мода: Explorer's Compass

  • Версия: 1.4.0

  • Ссылка: Modrinth

  • Зависимости: Нет

  • Примечание: Компас для поиска конкретных структур. Позволяет задать координаты и тип постройки для навигации.

👹 Мобы и существа

Моды, добавляющие новых мобов, боссов, животных.

  • Название мода: Alex's Mobs

  • Версия: 1.22.9

  • Ссылка: Modrinth

  • Зависимости: Citadel, GeckoLib

  • Примечание: Огромное количество новых животных и монстров (более 80 видов). Добавляет новые биомы, лут и механики приручения.

  • Название мода: Mowzie's Mobs

  • Версия: 1.8.2

  • Ссылка: Modrinth

  • Зависимости: GeckoLib

  • Примечание: Несколько уникальных и сложных мобов/боссов с продвинутой анимацией и поведением (Foliaath, Frostmaw и др.).

🔧 Технические / Библиотеки

Обязательные зависимости для работы основных модов.

Мод Версия Для чего нужен Ссылка
YUNG's API 4.0.6 База для всех модов YUNG's Modrinth
Moonlight Lib 2.16.28 Для Supplementaries, Amendments Modrinth
Citadel 2.6.3 Анимации и данные для Alex's Mobs Modrinth
GeckoLib 4.8.3 Движок анимаций для нескольких модов Modrinth
Balm 7.3.38 Общие утилиты для Waystones и др. Modrinth
Lithostitched 1.4.11 Зависимость для Tectonic Modrinth
AutoModpack 4.0.5 Авто-раздача модов клиентам Modrinth

💡 Совет: При добавлении нового мода всегда проверяйте его зависимости на Modrinth/CurseForge.Missing dependency = краш при загрузке.

Как добавить мод

# 1. Скачать мод (проверить: Forge 1.20.1)
wget -O modname.jar "ссылкааайл"

# 2. Проверить целостность (обязательно!)
file modname.jar
# Должно быть: "Java archive data" или "Zip archive data"

# 3. Переместить в папку модов
mv modname.jar /mnt/minecraft/mods/

# 4. Перезапустить сервер
docker restart minecraft

🎮 Подключение клиента

Требования к клиенту

  1. Minecraft 1.20.1
  2. Forge 1.20.1 (установить в лаунчере)
  3. AutoModpack (client)скачать с Modrinth

Настройка

  1. Установить Forge 1.20.1 и AutoModpack (client) в лаунчер.
  2. Создать файл config/automodpack.json в папке профиля клиента:
{
  "serverUrl": "http://<IP_СЕРВЕРА>:8080"
}

Замените <IP_СЕРВЕРА> на 192.168.1.207 (локально) или ваш внешний домен.

Подключение

  1. Запустить Minecraft.
  2. Multiplayer → Add Server.
  3. Адрес: 192.168.1.207:25565.
  4. При входе моды скачаются автоматически.

🔧 Полезные команды

Управление сервером

# Запуск / остановка
cd /mnt/minecraft
docker compose up -d
docker compose down

# Перезапуск (после добавления модов)
docker restart minecraft

# Просмотр логов
docker logs -f minecraft

Администрирование (RCON)

# Выдать права оператора (выполнить внутри контейнера)
docker exec -it minecraft rcon-cli op <имя_игрока>

# Другие команды
docker exec -it minecraft rcon-cli gamemode creative <имя_игрока>
docker exec -it minecraft rcon-cli whitelist on
docker exec -it minecraft rcon-cli stop

Работа с модами

# Список файлов в папке
ls -lh /mnt/minecraft/mods/

# Удаление мода
rm /mnt/minecraft/mods/<название>.jar
docker restart minecraft

🚨 Решение проблем

Ошибка "Invalid Session" (Недействительная сессия)

Причина: Сервер требует лицензию, а клиент не прошел проверку (пиратка). Решение:

  1. Убедитесь, что в docker-compose.yml указано: ONLINE_MODE: "false".
  2. Перезапустите контейнеры:
cd /mnt/minecraft
docker compose down
docker compose up -d

Краш при запуске: java.util.zip.ZipException: zip END header not found

Причина: Один из файлов .jar в папке /mnt/minecraft/mods/ поврежден или скачан не полностью (например, скачалась HTML страница вместо мода). Решение:

  1. Найти битый файл командой проверки целостности.
  2. Удалить его.
  3. Очистить кэш внутри контейнера и перезапуститься.
# Проверка всех модов на целостность
for f in *.jar; do
  if unzip -t "$f" &>/dev/null; then
    echo "✅ $f"
  else
    echo "❌ ПОВРЕЖДЁН: $f"
    ls -lh "$f"
  fi
done

# Очистка и перезапуск
rm -rf /mnt/minecraft/data/mods/*
docker restart minecraft

Клиент не скачивает моды

  1. Проверьте доступность порта 8080 с клиента:
telnet 192.168.1.207 8080
  1. Убедитесь, что modpack-server (nginx) запущен:
docker ps | grep minecraft-mods
  1. Проверьте конфиг automodpack.json на клиенте (указан правильный IP).

🔐 Безопасность

Настройки для пиратского сервера

Так как ONLINE_MODE: "false", любой может зайти под любым ником. Рекомендуется:

  1. Пароль на сервер: Укажите SERVER_PASSWORD в docker-compose.yml.
  2. Белый список (Whitelist):
    • Включите в настройках или через RCON: whitelist on.
    • Добавляйте игроков: whitelist add <ник>.
# Включить вайтлист через RCON
docker exec -it minecraft rcon-cli whitelist on
docker exec -it minecraft rcon-cli whitelist add zailon

Резервное копирование

# Копирование мира
tar -czf /backup/minecraft_world_$(date +%F).tar.gz /mnt/minecraft/data/world/

🔄 Обновление

Обновление модов

  1. Скачать новую версию .jar.
  2. Заменить старый файл в /mnt/minecraft/mods/.
  3. Перезапустить сервер.

Обновление ядра Forge

Обновляется автоматически при изменении переменной VERSION или FORGEVERSION в docker-compose.yml и перезапуске контейнера.