11 KiB
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 не совместимы и вызовут краш сервера.
Принцип работы
- Моды добавляются в папку
/mnt/minecraft/mods/. - Сервер перезапускается:
docker restart minecraft. - AutoModpack автоматически обновляет список доступных модов.
- Клиенты при подключении скачивают новые моды через порт 8080.
Шаблоны для описания (заполняется по мере добавления)
🎨 Графика и визуал
Моды, улучшающие графику, оптимизирующие рендеринг. ⚠️ Клиентские моды (Oculus, Rubidium, Sodium) не ставить на сервер!
[Шаблон для заполнения]
- Название мода:
- Версия:
- Ссылка:
- Зависимости:
- Примечание:
🧱 Новые блоки и предметы
Моды, добавляющие контент: блоки, предметы, механизмы.
[Шаблон для заполнения]
- Название мода:
- Версия:
- Ссылка:
- Зависимости:
- Примечание:
👹 Мобы и существа
Моды, добавляющие новых мобов, боссов, животных.
[Шаблон для заполнения]
- Название мода:
- Версия:
- Ссылка:
- Зависимости:
- Примечание:
⚡ Оптимизация сервера
Моды, снижающие нагрузку на сервер: память, ЦП, диск.
[Шаблон для заполнения]
- Название мода:
- Версия:
- Ссылка:
- Зависимости:
- Примечание:
Как добавить мод
# 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
🎮 Подключение клиента
Требования к клиенту
- Minecraft 1.20.1
- Forge 1.20.1 (установить в лаунчере)
- AutoModpack (client) — скачать с Modrinth
Настройка
- Установить Forge 1.20.1 и AutoModpack (client) в лаунчер.
- Создать файл
config/automodpack.jsonв папке профиля клиента:
{
"serverUrl": "http://<IP_СЕРВЕРА>:8080"
}
Замените <IP_СЕРВЕРА> на 192.168.1.207 (локально) или ваш внешний домен.
Подключение
- Запустить Minecraft.
- Multiplayer → Add Server.
- Адрес:
192.168.1.207:25565. - При входе моды скачаются автоматически.
🔧 Полезные команды
Управление сервером
# Запуск / остановка
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" (Недействительная сессия)
Причина: Сервер требует лицензию, а клиент не прошел проверку (пиратка). Решение:
- Убедитесь, что в
docker-compose.ymlуказано:ONLINE_MODE: "false". - Перезапустите контейнеры:
cd /mnt/minecraft
docker compose down
docker compose up -d
Краш при запуске: java.util.zip.ZipException: zip END header not found
Причина: Один из файлов .jar в папке /mnt/minecraft/mods/ поврежден или скачан не полностью (например, скачалась HTML страница вместо мода).
Решение:
- Найти битый файл командой проверки целостности.
- Удалить его.
- Очистить кэш внутри контейнера и перезапуститься.
# Проверка всех модов на целостность
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
Клиент не скачивает моды
- Проверьте доступность порта 8080 с клиента:
telnet 192.168.1.207 8080
- Убедитесь, что
modpack-server(nginx) запущен:
docker ps | grep minecraft-mods
- Проверьте конфиг
automodpack.jsonна клиенте (указан правильный IP).
🔐 Безопасность
Настройки для пиратского сервера
Так как ONLINE_MODE: "false", любой может зайти под любым ником. Рекомендуется:
- Пароль на сервер: Укажите
SERVER_PASSWORDвdocker-compose.yml. - Белый список (Whitelist):
- Включите в настройках или через RCON:
whitelist on. - Добавляйте игроков:
whitelist add <ник>.
- Включите в настройках или через RCON:
# Включить вайтлист через 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/
🔄 Обновление
Обновление модов
- Скачать новую версию
.jar. - Заменить старый файл в
/mnt/minecraft/mods/. - Перезапустить сервер.
Обновление ядра Forge
Обновляется автоматически при изменении переменной VERSION или FORGEVERSION в docker-compose.yml и перезапуске контейнера.