Обзор развертывания Web-LGSM на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры системы:
-
Операционная система: Debian или Ubuntu.
-
Пользователь:
mcbserver(создается автоматически с правами sudo). -
Доступ: Необходим доступ к интернету для загрузки пакетов и репозиториев.
-
Порты:
-
Внутренний порт приложения:
12357. -
Внешний порт доступа:
443(через Nginx).
FQDN итоговой панели на домене 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.
Процесс установки приложения¶
Развертывание приложения выполняется в несколько этапов:
-
Подготовка системы: Обновление кэша пакетов
apt, установка базовых зависимостей (git,python3,jq,unzipи др.) и создание пользователяmcbserver. -
Установка LinuxGSM: Загрузка скрипта
linuxgsm.shиз официального репозитория, запуск процесса создания сервера под пользователемmcbserverи последующее удаление установочного скрипта. -
Установка Web-LGSM:
-
Клонирование репозитория
https://github.com/BlueSquare23/web-lgsm.git. -
Запуск установочного скрипта
./install.shвнутри директории приложения. -
Настройка веб-сервера: Развертывание контейнера Nginx с использованием Certbot для обеспечения работы через HTTPS.
Права доступа и безопасность¶
-
Создается отдельный пользователь
mcbserverс домашней директорией/home/mcbserver. -
Пользователю предоставляются права
sudoбез необходимости ввода пароля (NOPASSWD) для автоматизации процессов. -
Директория
/tmp/.ansible_tmpсоздается в домашней папке пользователя с ограниченными правами (0700) для безопасного выполнения временных операций.
Контейнеры Docker и их запуск¶
Для обеспечения работы веб-интерфейса через защищенное соединение используется контейнер:
| Имя образа | Порты | Тома (volumes) | Переменные окружения | Политика перезапуска |
|---|---|---|---|---|
jonasal/nginx-certbot:latest | host mode | nginx_secrets:/etc/letsencrypt, /data/nginx/user_conf.d:/etc/nginx/user_conf.d, /home:/home | CERTBOT_EMAIL=hkadm@hostkey.com | unless-stopped |
Кастомные скрипты и дополнительные настройки¶
Для управления бэкендом приложения используется системная служба (systemd):
-
Сервис:
web-lgsm.service. -
Назначение: Обеспечивает работу Python-скрипта
web-lgsm.pyв фоновом режиме. -
Команда запуска:
/usr/bin/python3 /home/mcbserver/web-lgsm/web-lgsm.py. -
Команда остановки:
/usr/bin/python3 /home/mcbserver/web-lgsm/web-lgsm.py --stop.
Инструкция по обновлению приложения¶
Для обновления основного приложения Web-LGSM необходимо выполнить следующие действия:
-
Перейти в директорию приложения:
cd /home/mcbserver/web-lgsm -
Выполнить команду обновления (если предусмотрено скриптом установки) или перезапустить сервис для подтягивания изменений, если они связаны с кодом:
sudo systemctl restart web-lgsm.service
Расположение конфигурационных файлов и данных¶
-
Данные приложения:
/home/mcbserver/web-lgsm. -
Конфигурация Nginx (Docker):
/root/nginx/compose.yml. -
Сертификаты SSL: Хранятся в Docker volume
nginx_secrets.
Доступные порты для подключения¶
-
443— доступ к веб-интерфейсу через HTTPS. -
12357— локальный порт бэкенда (доступен только внутри сервера).
Запуск, остановка приложения¶
Управление бэкендом осуществляется через systemctl:
-
Запуск:
sudo systemctl start web-lgsm.service -
Остановка:
sudo systemctl stop web-lgsm.service -
Статус:
sudo systemctl status web-lgsm.service