Перейти к содержанию

Обзор развертывания Сервера Palworld

Предварительные требования

Для успешного развертывания и эксплуатации панели управления сервером Palworld и связанных игровых контейнеров хост-сервер должен соответствовать следующим требованиям:

  • Операционная система: Ubuntu (требуется менеджер пакетов apt).

  • Привилегии: Для установки Docker, настройки межсетевого экрана (firewall) и управления системными службами требуется доступ Root или права sudo.

  • Docker Engine: Должны быть установлены и запущены Docker и плагин Docker Compose.

  • Сетевой доступ: Сервер должен иметь публичный IP-адрес для обеспечения внешних подключений к панели управления и игровому серверу.

  • Настройка домена: Записи DNS должны быть настроены так, чтобы указывать указанный поддомен на публичный IP-адрес сервера.

FQDN конечной панели

Веб-панель управления доступна через HTTPS с использованием следующего формата доменного имени полного квалифицированного (FQDN):

palworld<Server ID>.hostkey.in

Замените <Server ID> на конкретный идентификатор, назначенный экземпляру. Панель работает на стандартном порту HTTPS (443).

Структура файлов и директорий

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

  • Конфигурация прокси и SSL:

  • Конфигурация Nginx: /opt/proxy/nginx/conf.d/

  • Сертификаты SSL: /opt/proxy/letsencrypt/

  • Webroot для Certbot: /opt/proxy/www/

  • Определение Docker Compose: /opt/proxy/docker-compose.yml

  • Компоненты MCSManager:

  • Данные веб-панели: /opt/mcsmanager-web-data

  • Логи веб-панели: /opt/mcsmanager-web-logs

  • Данные демона (daemon): /opt/mcsm/daemon/data

  • Логи демона (daemon): /opt/mcsmanager-daemon-logs

  • Данные игрового сервера Palworld:

  • Контейнер игрового сервера хранит свои данные в томе, отображенному на /data внутри контекста контейнера, который управляется через экземпляр MCSManager.

Процесс установки приложений

Развертывание использует контейнеры Docker для всех основных компонентов. Система состоит из веб-интерфейса MCSManager, демона MCSManager и контейнера игрового сервера Palworld.

Образы Docker и версии

Для развертывания используются следующие образы контейнеров:

  • MCSManager Web: ngc7331/mcsmanager-web:latest (Примечание: Фиксация версии установлена на v10.11.0 в переменных конфигурации для обеспечения согласованности между веб-интерфейсом и демоном).

  • MCSManager Daemon: ngc7331/mcsmanager-daemon:latest

  • Palworld Server: kagurazakanyaa/palworld:latest

  • Nginx Proxy: nginx:alpine

  • Certbot: certbot/certbot

Развертывание контейнеров

Система автоматически инициализирует контейнеры в процессе развертывания:

  1. MCSManager Daemon: Запускается для управления игровыми экземплярами, отображая порт 24444 локально.

  2. MCSManager Web: Запускается для обеспечения интерфейса управления, отображая порт 23333 локально.

  3. Экземпляр Palworld: Создается и запускается через API MCSManager как процесс, управляемый Docker.

  4. Службы прокси: Nginx и Certbot развертываются с использованием стека docker-compose для обработки терминации SSL и маршрутизации.

Инициализация

При первом развертывании система автоматически выполняет следующие шаги инициализации:

  • Создает пользователя администратора с именем admin.

  • Генерирует и считывает ключ API демона из файла /opt/mcsm/daemon/data/Config/global.json.

  • Регистрирует демон в веб-панели, используя внутренний протокол подключения.

  • Создает игровой экземпляр Palworld с именем palworld и суффиксом конкретного server_id.

Права доступа и безопасность

Развертывание реализует меры безопасности на уровне приложения и сети:

  • Аутентификация: Для доступа к панели MCSManager требуется имя пользователя и пароль. Учетные данные администратора по умолчанию генерируются во время начальной настройки.

  • Межсетевой экран (Firewall): Межсетевой экран хоста должен разрешать трафик на портах 443 (HTTPS панель), 12444 (WebSocket демона) и 8211 (Игровой трафик).

  • Изоляция: Все службы работают в изолированных контейнерах Docker с определенными политиками перезапуска (unless-stopped).

  • Безопасная связь: Весь внешний трафик к панели и демону шифруется с использованием TLS (HTTPS/WSS) через сертификаты Let's Encrypt.

Прокси-серверы

Система использует Nginx в качестве обратного прокси для управления внешним трафиком и сертификатами SSL.

Конфигурация домена и портов

  • Доступ к панели: HTTPS-трафик на порту 443 пересылается (проксируется) во внутренний веб-интерфейс MCSManager, работающий на порту 23333.

  • Доступ к демону: HTTPS/WSS-трафик на порту 12444 пересылается во внутренний демон MCSManager, работающий на порту 24444.

Конфигурация SSL

  • Провайдер: Let's Encrypt.

  • Обновление: Обеспечивается через контейнер certbot.

  • Пути к сертификатам:

  • Сертификат: /etc/letsencrypt/live/palworld<Server ID>.hostkey.in/fullchain.pem

  • Ключ: /etc/letsencrypt/live/palworld<Server ID>.hostkey.in/privkey.pem

Файлы конфигурации Nginx

  • Конфигурация панели: /opt/proxy/nginx/conf.d/palworld<Server ID>.hostkey.in.conf

  • Конфигурация демона: /opt/proxy/nginx/conf.d/palworld<Server ID>.hostkey.in-daemon.conf

Конфигурация Nginx обеспечивает перенаправление HTTP на HTTPS и поддерживает обновление WebSocket для коммуникации в реальном времени между панелью и демоном.

Настройки разрешений

Скрипт развертывания устанавливает конкретные разрешения для директорий и файлов, чтобы контейнеры Docker могли получить доступ к необходимым ресурсам:

  • Директории прокси: Директории в /opt/proxy/ (conf.d, letsencrypt, www) создаются с правами доступа (mode) 0755.

  • Файлы конфигурации: Файлы конфигурации Nginx развертываются с правами доступа 0644.

  • Директории данных MCSManager:

  • /opt/mcsm/daemon/data и /opt/mcsmanager-web-data создаются с правами доступа 0755.

  • Mount тома: Контейнеры Docker монтируют эти директории хоста в файловую систему контейнера, полагаясь на маппинг томов Docker для обработки внутренних разрешений.

Доступные порты для подключения

Следующие порты открыты и используются при развертывании:

Порт Протокол Служба / Назначение
443 TCP (HTTPS) Доступ к веб-панели MCSManager
12444 TCP (WSS) WebSocket демона MCSManager
8211 UDP Трафик игрового сервера Palworld
25575 TCP Palworld RCON (удаленная консоль)
23333 TCP (Внутренний) MCSManager Web (локально)
24444 TCP (Внутренний) MCSManager Daemon (локально)

Запуск, остановка и обновление

Службами управляют в первую очередь через Docker и Docker Compose.

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

Контейнеры Nginx и Certbot управляются через файл Docker Compose, расположенный по адресу /opt/proxy/docker-compose.yml.

  • Запуск/Перезапуск прокси:

    docker compose -f /opt/proxy/docker-compose.yml up -d
    

  • Перезапуск конкретного контейнера:

    docker container restart palworld-proxy
    

  • Обновление образов:

    docker compose -f /opt/proxy/docker-compose.yml pull
    docker compose -f /opt/proxy/docker-compose.yml up -d
    

Управление компонентами MCSManager

Демон MCSManager и веб-контейнеры управляются индивидуально, так как они были развернуты с использованием службы docker container.

  • Перезапуск MCSManager Web:

    docker container restart mcsm-web
    

  • Перезапуск MCSManager Daemon:

    docker container restart mcsm-daemon
    

Управление экземпляром Palworld

Игровым сервером Palworld управляется через веб-интерфейс MCSManager. Однако базовым контейнером Docker также можно управлять напрямую, используя имя контейнера palworld-<Server ID>.

  • Запуск экземпляра:

    docker container start palworld-<Server ID>
    

  • Остановка экземпляра:

    docker container stop palworld-<Server ID>
    

  • Перезапуск экземпляра:

    docker container restart palworld-<Server ID>
    

Примечание: Замените <Server ID> на фактический идентификатор, используемый в вашем развертывании. Экземпляр настроен с политикой перезапуска unless-stopped, что обеспечивает автоматический перезапуск при сбое контейнера, если он не был остановлен вручную.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×