Обзор развертывания Сервера 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
Развертывание контейнеров¶
Система автоматически инициализирует контейнеры в процессе развертывания:
-
MCSManager Daemon: Запускается для управления игровыми экземплярами, отображая порт
24444локально. -
MCSManager Web: Запускается для обеспечения интерфейса управления, отображая порт
23333локально. -
Экземпляр Palworld: Создается и запускается через API MCSManager как процесс, управляемый Docker.
-
Службы прокси: 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.
-
Запуск/Перезапуск прокси:
-
Перезапуск конкретного контейнера:
-
Обновление образов:
Управление компонентами MCSManager¶
Демон MCSManager и веб-контейнеры управляются индивидуально, так как они были развернуты с использованием службы docker container.
-
Перезапуск MCSManager Web:
-
Перезапуск MCSManager Daemon:
Управление экземпляром Palworld¶
Игровым сервером Palworld управляется через веб-интерфейс MCSManager. Однако базовым контейнером Docker также можно управлять напрямую, используя имя контейнера palworld-<Server ID>.
-
Запуск экземпляра:
-
Остановка экземпляра:
-
Перезапуск экземпляра:
Примечание: Замените <Server ID> на фактический идентификатор, используемый в вашем развертывании. Экземпляр настроен с политикой перезапуска unless-stopped, что обеспечивает автоматический перезапуск при сбое контейнера, если он не был остановлен вручную.