Обзор развертывания 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:
- Обновление образов контейнеров:
Все контейнеры настроены на автоматический перезапуск при перезагрузке сервера, за исключением случаев явной остановки.