Инструкция: запускаем Minecraft локально в Docker и открываем доступ друзьям с помощью Tuna

Эта инструкция подойдёт для любой платформы Windows, Linux, macOS. Разве что Windows нужна не ниже 10.

Сгенерированно AI
Сгенерированно AI

Подготовка системы

Мы будем запускать minecraft-server (java edition) в docker, так как это удобно, кроссплатформенно, из коробки имеет автозапуск и прочие плюсы. Перед началом я рекомендую установить текстовый редактор для последующей правки yaml файлов например Notepad++ или sublime-text.

Windows

Если у вас Windows, потребуется установить дополнительные компоненты:

Для установки WSL требуется Windows 10 version 2004 и старше, откройте PowerShell от имени администратора и выполните:

wsl --install

С Docker Desktop чуть проще, скачиваете установщик с сайта и устанавливаете как обычную программу

Затем перезагрузите компютер.

macOS

Тут нужно устновить только Docker

Linux

Установите Docker, быстрая установка в Linux:

bash <(curl -sSL https://get.docker.com/)

Регистрация в Tuna

Зарегистрируйтесь на tuna.am эта утилита нужна чтобы открыть доступ к игре из вашей локальной сети в мир.

Для начала надо купить подписку, так как TCP порты доступны только по подписке, идём в нужный раздел и покупаем за 299 рублей:

покупка подписки
покупка подписки

Теперь нужно зарезервировать статичный TCP порт. Переходим на нужную вкладку и нажимаем Добавить

добавление порта
добавление порта

Вводим алиас (название) для порта который резервируем, например minecraft:

добавление порта
добавление порта

Готово, порт зарезервирован, вы можете увидеть хост и порт, по которому чуть позже можно будет подключаться:

адрес подключения
адрес подключения

Подготовка к запуску

Создайте отдельный каталог, например minecraft на рабочем столе, в каталоге создайте файл docker-compose.yml и откройте его с помощью Notepad++ или sublime-text.

Вставьте в файл следкующий код:

name: minecraft services: minecraft: container_name: minecraft-server image: itzg/minecraft-server:latest ports: - "25565:25565" environment: EULA: "TRUE" MEMORY: 2G volumes: - minecraft-data:/data restart: unless-stopped tuna: container_name: minecraft-tuna image: yuccastream/tuna:latest command: tcp --port=minecraft minecraft:25565 restart: always depends_on: - minecraft environment: - TUNA_TOKEN=<ваш_токен> volumes: minecraft-data:

Замените переменную <ваш_токен> на токен из личного кабинета tuna

токен
токен

Запуск

Теперь всё готово и можно запускать сервер.

В случае Windows откройте PowerShell, в macOS/Linux терминал и перейдите в каталог который вы ранее создали, в моём случае в Linux это выглядит так:

cd ~/minecraft

вот пример для Windows, если вы создали каталог minecraft на рабочем столе:

cd $env:USERPROFILE\Desktop\minecraft

Теперь запустите сервисы:

docker compose up -d

Если вы видите примерно такой вывод, значит всё в порядке

[+] Running 4/4 ✔ Network minecraft_default Created 0.2s ✔ Volume "minecraft_minecraft-data" Created 0.0s ✔ Container minecraft-server Started 0.9s ✔ Container minecraft-tuna Started

Всё работает!

Перейдите на вкладку туннели, и убедитесь, что туннель подключился.

активный туннель
активный туннель

Собственно на этом всё, локально вы можете подключаться к серверу по адресу localhost:25565, а друзьям дайте ссылку вида ru.tuna.am:34741 (только ваш адрес, тут я привёл пример).

Подключение в клиенте

Устранение неполадок

Если подключение не происходит или имеются какие то ошибки, проверьте, что процессы minecraft-server и tuna запущены и работают.

docker compose ps -a
check run status
check run status

Если есть какие то неплоадки смотрите журналы контейнеров:

docker compose logs tuna
Вывод лога tuna, если всё хорошо
Вывод лога tuna, если всё хорошо
docker compose logs minecraft
Вывод лога minecraft-server, если всё хорошо
Вывод лога minecraft-server, если всё хорошо

Остановка и удаление

Если вам нужно остановаить сервер выполните команду

docker compose down

Чтобы удалить все данные, добавьте ключ -v

docker compose down -v

На этом у меня всё, спасибо что дочитали до конца 🙂

Контакты

Если возникли вопросы по работе tuna, можете задать их по почте [email protected], тут в коментариях или нашем чате в telegram.

77
33 комментария

Для начала надо купить подписку, так как TCP порты доступны только по подписке, идём в нужный раздел и покупаем за 299 рублей:

Но ведь есть бесплатный Ngrok и его клоны?

6

Ещё как альтернатива купить домен, привязать к cloudflare и использовать их tunnels. Всяко дешевле будет, ру домен в районе 150р в год взять можно, если новый, не продление.

4

У Ngrok серверы есть в россии - НЕТ.
TCP туннели только With credit card verification - российская карта подойдёт для этого - НЕТ.

Ну да, tuna это аналог Ngrok )
И у всех +- таких же сервисов статичные TCP туннели по подписке.

1

А какие есть сервисы с бесплатным TCP?

Чуваки изобрели nat hole punching и по подписке продают? пиздец.

UPD: a, это даже не оно, это просто прокся. ну тогда да.

Комментарий недоступен

5