Менеджер игровых серверов для Linux (LGSM и Web-LGSM): Обзор развертывания на сервере¶
Предварительные требования и базовые условия¶
Для развертывания и запуска приложения требуются следующие спецификации окружения:
-
Операционная система: Linux-дистрибутив на базе Debian (например, Ubuntu, Debian).
-
Привилегии: Для начальной настройки требуется доступ root или учетная запись пользователя с правами
sudo. -
Учетная запись пользователя: В процессе установки создается выделенный системный пользователь с именем
mcbserver. -
Сетевые порты:
-
Порт
443(HTTPS) для внешнего веб-доступа через обратный прокси. -
Порт
12357(TCP) для внутреннего бэкенд-сервиса Web-LGSM.
-
-
Зависимости: Скрипт установки автоматически устанавливает следующие пакеты:
-
bsdmainutils -
bzip2 -
jq -
lib32gcc-s1 -
lib32stdc++6 -
netcat -
pigz -
unzip -
git -
python3 -
python3-venv -
python3-pip
-
FQDN финальной панели¶
Панель Web-LGSM доступна по следующему полному доменному имени (Fully Qualified Domain Name — FQDN) в домене hostkey.in:
-
URL:
web-lgsm<ServerID>.hostkey.in:443-
Замените
<ServerID>на конкретный идентификатор, назначенный серверу. -
Путь установлен на
/.
-
Структура файлов и директорий¶
Приложение и его компоненты организованы в домашней директории пользователя mcbserver. Основные расположения:
-
Домашняя директория пользователя:
/home/mcbserver -
Директория Linux Game Server Manager (LGSM):
/home/mcbserver/mcbserver -
Директория Web-LGSM:
/home/mcbserver/web-lgsm -
Python-скрипт Web-LGSM:
/home/mcbserver/web-lgsm/web-lgsm.py -
Временная директория Ansible:
/home/mcbserver/.ansible_tmp -
Файл юнита сервиса systemd:
/etc/systemd/system/web-lgsm.service -
Конфигурация Nginx/Certbot:
/root/nginx -
Compose-файл Nginx:
/root/nginx/compose.yml -
SSL-сертификаты: Хранятся во внешнем Docker-объеме
nginx_secrets, смонтированном в/etc/letsencrypt.
Процесс установки приложения¶
Процесс развертывания включает создание пользователя, установку зависимостей, а также развертывание ядра LGSM и интерфейса Web-LGSM.
-
Создание пользователя: Создается пользователь
mcbserverс домашней директорией/home/mcbserver, который добавляется в группуsudo. -
Развертывание LGSM:
-
Скрипт
linuxgsm.shзагружается в домашнюю директорию пользователя. -
Скрипт выполняется для создания структурной директории
mcbserver. -
Исходный скрипт
linuxgsm.shудаляется после успешного создания.
-
-
Развертывание Web-LGSM:
-
Подготавливается директория
web-lgsm. -
Репозиторий
https://github.com/BlueSquare23/web-lgsm.gitклонируется в директорию, с выборкой веткиmaster. -
Скрипт установки
install.shделается исполняемым и запускается внутри директорииweb-lgsm.
-
-
Активация сервиса:
-
Файл юнита сервиса systemd создается по пути
/etc/systemd/system/web-lgsm.service. -
Сервис включается и запускается, обеспечивая, что бэкенд слушает порт
127.0.0.1:12357.
-
Права доступа и безопасность¶
Меры безопасности и контроль доступа реализованы следующим образом:
-
Настройка Sudo:
-
Пользователю
mcbserverпредоставлен доступ к sudo без пароля (NOPASSWD: ALL) через выделенную запись в/etc/sudoers.d/99-mcbserver-nopasswd. -
Параметр по умолчанию
requirettyявно удален из конфигурации sudoers для разрешения несинтерактивного выполнения sudo. -
Параметры по умолчанию
targetpwиrootpwудалены для обеспечения совместимости с NOPASSWD.
-
-
Права доступа к директориям:
-
Директория
/etc/sudoers.dпринадлежитroot:rootс правами0750. -
Директория
/tmpустановлена в1777(бит фиксации/sticky bit) для обеспечения безопасного создания временных файлов. -
Временная директория пользователя
/home/mcbserver/.ansible_tmpсоздается с правами0700.
-
-
Ограничения пользователя: Процессы приложения выполняются в контексте пользователя
mcbserver, изолируя их от пользователя root там, где это возможно.
Базы данных¶
Предоставленные данные конфигурации не указывают на подключения к внешним базам данных, места хранения или специфические настройки баз данных для компонентов LGSM или Web-LGSM. Приложение, по-видимому, управляет состоянием игрового сервера и конфигурацией через локальные файловые структуры внутри домашней директории пользователя.
Docker-контейнеры и их развертывание¶
Стек прокси и управления SSL на базе Docker развертывается с помощью docker compose для обработки внешнего трафика.
-
Расположение Docker Compose:
/root/nginx/compose.yml -
Образ:
jonasal/nginx-certbot:latest -
Метод развертывания: Выполняется через
docker compose up -d. -
Конфигурация контейнера:
-
Режим сети:
host(использует сетевой стек хоста). -
Политика перезапуска:
unless-stopped. -
Переменные окружения:
CERTBOT_EMAIL:hkadm@hostkey.com
-
Объемы (Volumes):
-
nginx_secrets: смонтирован в/etc/letsencryptдля хранения SSL-сертификатов. -
/data/nginx/user_conf.d: смонтирован в/etc/nginx/user_conf.dдля пользовательских конфигураций Nginx. -
/home: смонтирован в/homeдля доступа к данным пользователей.
-
-
Прокси-серверы¶
Приложение использует обратный прокси для открытого доступа к внутреннему сервису Web-LGSM через стандартные порты HTTPS.
-
Программное обеспечение прокси: Nginx, управляемый через Docker-контейнер
jonasal/nginx-certbot. -
SSL/TLS: Управляется автоматически через Certbot внутри контейнера.
-
Конфигурация маршрутизации:
-
Внешний порт:
443 -
Внешний путь:
/ -
Внутренний адрес назначения:
127.0.0.1:12357 -
Внутренний путь: Пустой (корневой путь)
-
-
Пользовательский домен: Прокси настроен на обслуживание зоны
hostkey.inс префиксомweb-lgsm.
Настройки прав доступа¶
Права доступа к файлам и директориям строго определены для обеспечения безопасности и правильной работы:
-
Домашняя директория:
/home/mcbserverпринадлежит пользователюmcbserver. -
Директория LGSM:
/home/mcbserver/mcbserverпринадлежит пользователюmcbserver. -
Директория Web-LGSM:
/home/mcbserver/web-lgsmпринадлежит пользователюmcbserverс правами0755. -
Файл юнита сервиса Systemd:
/etc/systemd/system/web-lgsm.serviceпринадлежитroot:rootс правами0644. -
Директория конфигурации Nginx:
/root/nginxпринадлежитrootс правами0644. -
Compose-файл:
/root/nginx/compose.ymlпринадлежитrootс правами0644.
Расположение файлов конфигурации и данных¶
Следующие пути содержат основные файлы конфигурации и директории данных для развернутой системы:
-
Конфигурация LGSM: Расположена внутри
/home/mcbserver/mcbserver. -
Конфигурация Web-LGSM: Расположена внутри
/home/mcbserver/web-lgsm. -
Пользовательские конфиги Nginx:
/data/nginx/user_conf.d(путь хоста), смонтирован в/etc/nginx/user_conf.d(путь контейнера). -
Переменные окружения Nginx:
/data/nginx/nginx-certbot.env(используется в Docker Compose). -
Файл юнита сервиса Systemd:
/etc/systemd/system/web-lgsm.service.
Доступные порты для подключения¶
Следующие порты настроены для подключения:
-
Порт 443: Внешний HTTPS-трафик, обрабатываемый Docker-контейнером Nginx.
-
Порт 12357: Внутренний TCP-порт, на котором бэкенд-сервис Web-LGSM слушает на
127.0.0.1.
Запуск, остановка и обновление¶
Сервис Web-LGSM управляется через systemd. Процессы игровых серверов LGSM управляются через соответствующие интерфейсы командной строки.
Команды управления сервисом¶
Для управления бэкенд-сервисом Web-LGSM:
-
Запуск:
-
Остановка:
-
Перезапуск:
-
Включение при загрузке:
-
Проверка статуса:
Команды управления Docker¶
Для управления стеком контейнеров Nginx/Certbot:
-
Запуск/Развертывание:
-
Остановка:
-
Логи: