Обзор развертывания Web LGSM на сервере¶
Предварительные требования¶
Для корректной работы приложения сервер должен соответствовать следующим требованиям:
-
Операционная система: Debian или Ubuntu.
-
Права доступа: Требуется доступ с правами
sudoдля установки системных пакетов и настройки сервисов. -
Порты:
-
443/tcp: внешний порт (HTTPS). -
12357/tcp: внутренний порт приложения (локально на127.0.0.1).
FDQN итоговой панели на домене hostkey.in¶
Доступ к веб-интерфейсу осуществляется через поддомен, сформированный по следующему шаблону:
| Параметр | Значение |
|---|---|
| Префикс | web-lgsm |
| Домен | hostkey.in |
| Полный шаблон | web-lgsm{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
Основные директории, используемые в системе:
-
/home/mcbserver/web-lgsm— рабочая директория приложения Web LGSM. -
/root/nginx— конфигурационные файлы Docker Compose для прокси-сервера. -
/data/nginx/user_conf.d— пользовательские конфигурации Nginx. -
/data/nginx/nginx-certbot.env— переменные окружения для SSL.
Процесс установки приложения¶
Развертывание приложения выполняется в несколько этапов:
-
Подготовка системы: Создается системный пользователь
mcbserverс правами доступа к выполнению команд черезsudoбез ввода пароля. Устанавливаются базовые зависимости (git,python3,jq,unzipи др.). -
Установка LinuxGSM: С помощью установочного скрипта
linuxgsm.shсоздается серверная среда для основного приложения LGSM под пользователемmcbserver. -
Развертывание Web LGSM:
-
Клонируется репозиторий
https://github.com/BlueSquare23/web-lgsm.gitв домашнюю директорию пользователя. -
Запускается установочный скрипт
./install.sh, который настраивает программную часть веб-интерфейса. -
Настройка прокси и SSL: Устанавливается Docker, разворачивается контейнер Nginx с интеграцией Certbot для автоматического получения SSL-сертификатов.
Права доступа и безопасность¶
-
Для выполнения операций создается отдельный пользователь
mcbserver. -
Настроены строгие права на директорию
/etc/sudoers.d. -
Создана временная директория в домашней папке пользователя для безопасного выполнения процессов установки.
-
Сервис работает от имени пользователя, не имеющего прав суперпользователя (root) напрямую во время работы приложения.
Контейнеры Docker и их запуск¶
Для обеспечения работы веб-интерфейса через защищенное соединение используется следующий контейнер:
| Параметр | Значение |
|---|---|
| Имя образа | jonasal/nginx-certbot:latest |
| Режим сети | host |
| Политика перезапуска | unless-stopped |
| Тома (volumes) | nginx_secrets:/etc/letsencrypt/data/nginx/user_conf.d:/etc/nginx/user_conf.d/home:/home |
Кастомные скрипты и дополнительные настройки¶
В процессе развертывания выполняются следующие действия:
-
Установка окружения: Скрипт
install.shвнутри репозитория Web LGSM выполняет специфичную настройку приложения. -
Создание системного сервиса: Для обеспечения работы бэкенда создается и активируется
systemdюнитweb-lgsm.service. Он запускает основной процесс Python (web-lgsm.py) и обеспечивает его автоматический перезапуск при сбоях.
Инструкция по обновлению приложения¶
Для обновления основного приложения Web LGSM необходимо:
-
Перейти в директорию
/home/mcbserver/web-lgsm. -
Выполнить обновление репозитория через
git pull. -
Перезапустить сервис командой:
Расположение конфигурационных файлов и данных¶
-
Код приложения:
/home/mcbserver/web-lgsm -
Конфигурация Nginx (Docker):
/root/nginx/compose.yml -
Сертификаты SSL: хранятся в именованном томе
nginx_secrets.
Доступные порты для подключения¶
| Порт | Протокол | Назначение |
|---|---|---|
| 443 | TCP | Веб-интерфейс (HTTPS) |
| 12357 | TCP | Локальный API бэкенда (доступен только внутри сервера) |
Запуск, остановка приложения¶
Управление веб-сервисом осуществляется через systemctl:
-
Запуск:
sudo systemctl start web-lgsm.service -
Остановка:
sudo systemctl stop web-lgsm.service -
Проверка статуса:
sudo systemctl status web-lgsm.service