Обзор развертывания MCSManager и Palworld на сервере¶
Предварительные требования¶
Для успешного развертывания системы необходимо наличие сервера с операционной системой Ubuntu. Требуется наличие прав суперпользователя (root) или доступа через sudo для установки пакетов и управления контейнерами.
Система использует следующие сетевые порты:
-
Порт
80и443для веб-интерфейса панели управления и прокси-сервера. -
Порт
23333для внутреннего доступа к веб-интерфейсу MCSManager. -
Порт
24444для внутреннего доступа к демон-сервису MCSManager. -
Порт
8211(UDP) для игрового сервера Palworld. -
Порт
25575(TCP) для RCON управления игровым сервером.
Необходимо наличие зарегистрированного доменного имени для доступа к панели управления через HTTPS.
Структура файлов и каталогов¶
Все компоненты системы развернуты в контейнерах Docker, но данные и конфигурации сохраняются в следующих директориях на хосте:
-
/opt/mcsm/daemon/data— данные демон-сервиса MCSManager, включая файл конфигурацииConfig/global.json. -
/opt/mcsmanager-web-data— данные веб-интерфейса MCSManager. -
{{ proxy_base_dir }}/nginx/conf.d— конфигурационные файлы веб-сервера Nginx. -
{{ proxy_base_dir }}/letsencrypt— сертификаты SSL, полученные через Let's Encrypt. -
{{ proxy_base_dir }}/www— временная директория для валидации сертификатов. -
{{ palworld_data_dir }}— директория для сохранения данных игрового сервера Palworld.
Процесс установки приложения¶
Установка выполняется через последовательный запуск контейнеров Docker.
-
Устанавливаются пакеты
docker-compose-plugin,python3-dockerиpython3-pip. -
Запускается контейнер демон-сервиса MCSManager:
-
Образ:
ngc7331/mcsmanager-daemon:latest -
Имя контейнера:
mcsm-daemon -
Политика перезапуска:
unless-stopped -
Запускается контейнер веб-интерфейса MCSManager:
-
Образ:
ngc7331/mcsmanager-web:latest -
Имя контейнера:
mcsm-web -
Политика перезапуска:
unless-stopped -
Инициализируется панель управления через API, создавая учетную запись администратора с именем
admin. -
Через API добавляется демон-сервис в панель управления.
-
Создается и запускается контейнер игрового сервера Palworld через API панели MCSManager:
-
Образ:
kagurazakanyaa/palworld:latest -
Имя контейнера:
palworld-{{ server_id }} -
Тип процесса:
docker
Контейнеры Docker и их запуск¶
Система использует следующие контейнеры:
-
mcsm-daemon: -
Образ:
ngc7331/mcsmanager-daemon:latest -
Порты:
24444:24444 -
Объемы:
/opt/mcsm/daemon/data:/opt/mcsm/daemon/data,/var/run/docker.sock:/var/run/docker.sock -
mcsm-web: -
Образ:
ngc7331/mcsmanager-web:latest -
Порты:
23333:23333 -
Объемы:
/opt/mcsmanager-web-data:/opt/mcsm/web/data -
palworld-proxy: -
Образ:
nginx:alpine -
Режим сети:
host -
Объемы: конфигурация Nginx, сертификаты Let's Encrypt, директория для валидации.
-
palworld-certbot: -
Образ:
certbot/certbot -
Объемы: сертификаты Let's Encrypt, директория для валидации.
-
palworld-{{ server_id }}: -
Образ:
kagurazakanyaa/palworld:latest -
Порты:
8211:8211/udp,25575:25575/tcp -
Переменные окружения:
PORT,PLAYERS,MULTITHREADING,SERVER_NAME,SERVER_DESCRIPTION,ADMIN_PASSWORD,SERVER_PASSWORD. -
Объемы:
{{ palworld_data_dir }}:/palworld/
Контейнеры управляются через API панели MCSManager или напрямую через команды Docker.
Прокси серверы¶
Для обеспечения безопасного доступа к панели управления используется веб-сервер Nginx в режиме обратного прокси-сервера.
-
Контейнер
palworld-proxyобрабатывает входящие запросы на портах80и443. -
Конфигурация HTTP перенаправляет все запросы на HTTPS.
-
Конфигурация HTTPS использует сертификаты Let's Encrypt, хранящиеся в
/etc/letsencrypt/live/{{ panel_domain }}/. -
Запросы к панели управления перенаправляются на
http://127.0.0.1:{{ internal_port }}. -
Запросы к демон-сервису перенаправляются на
http://127.0.0.1:{{ daemon_internal_port }}. -
Поддерживается обновление WebSocket соединений для работы панели управления.
Сертификаты получаются автоматически через контейнер palworld-certbot с использованием метода валидации через веб-корневую директорию.
Настройки прав¶
Права доступа к файлам и директориям настроены следующим образом:
-
Директории
/opt/mcsm/daemon/dataи/opt/mcsmanager-web-dataимеют права0755. -
Конфигурационные файлы Nginx имеют права
0644. -
Файлы сертификатов Let's Encrypt доступны для чтения контейнерами Nginx и Certbot.
-
Контейнеры запускаются с привилегиями, необходимыми для доступа к сокету Docker (
/var/run/docker.sock).
Запуск, остановка и обновление¶
Управление контейнерами осуществляется через команды Docker или через веб-интерфейс MCSManager.
-
Запуск контейнера Palworld:
-
Остановка контейнера Palworld:
-
Перезапуск контейнера Nginx:
-
Обновление образов контейнеров:
Все контейнеры настроены на автоматический перезапуск при перезагрузке сервера, за исключением случаев явной остановки.