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

Обзор развертывания 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.

  1. Устанавливаются пакеты docker-compose-plugin, python3-docker и python3-pip.
  2. Запускается контейнер демон-сервиса MCSManager:
  3. Образ: ngc7331/mcsmanager-daemon:latest
  4. Имя контейнера: mcsm-daemon
  5. Политика перезапуска: unless-stopped
  6. Запускается контейнер веб-интерфейса MCSManager:
  7. Образ: ngc7331/mcsmanager-web:latest
  8. Имя контейнера: mcsm-web
  9. Политика перезапуска: unless-stopped
  10. Инициализируется панель управления через API, создавая учетную запись администратора с именем admin.
  11. Через API добавляется демон-сервис в панель управления.
  12. Создается и запускается контейнер игрового сервера Palworld через API панели MCSManager:
  13. Образ: kagurazakanyaa/palworld:latest
  14. Имя контейнера: palworld-{{ server_id }}
  15. Тип процесса: 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:
    docker start palworld-{{ server_id }}
    
  • Остановка контейнера Palworld:
    docker stop palworld-{{ server_id }}
    
  • Перезапуск контейнера Nginx:
    docker restart palworld-proxy
    
  • Обновление образов контейнеров:
    docker pull ngc7331/mcsmanager-daemon:latest
    docker pull ngc7331/mcsmanager-web:latest
    docker pull kagurazakanyaa/palworld:latest
    

Все контейнеры настроены на автоматический перезапуск при перезагрузке сервера, за исключением случаев явной остановки.

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