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

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

Процесс установки приложения

Развертывание приложения выполняется в несколько этапов:

  1. Подготовка системы: Создается системный пользователь mcbserver с правами доступа к выполнению команд через sudo без ввода пароля. Устанавливаются базовые зависимости (git, python3, jq, unzip и др.).

  2. Установка LinuxGSM: С помощью установочного скрипта linuxgsm.sh создается серверная среда для основного приложения LGSM под пользователем mcbserver.

  3. Развертывание Web LGSM:

  4. Клонируется репозиторий https://github.com/BlueSquare23/web-lgsm.git в домашнюю директорию пользователя.

  5. Запускается установочный скрипт ./install.sh, который настраивает программную часть веб-интерфейса.

  6. Настройка прокси и 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 необходимо:

  1. Перейти в директорию /home/mcbserver/web-lgsm.

  2. Выполнить обновление репозитория через git pull.

  3. Перезапустить сервис командой:

    sudo systemctl restart web-lgsm.service
    

Расположение конфигурационных файлов и данных

  • Код приложения: /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

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