Обзор развертывания LinuxPatch на сервере¶
Предварительные требования¶
Для корректной работы приложения и его компонентов сервер должен соответствовать следующим требованиям:
-
Операционная система: Любая современная ОС с поддержкой Docker.
-
Доступ: Права суперпользователя (root) для установки системных пакетов и управления контейнерами.
-
Порты:
-
80(HTTP) — для работы прокси-сервера и получения SSL-сертификатов. -
443(HTTPS) — для защищенного доступа к приложению.
FDQN итоговой панели на домене hostkey.in¶
Доступ к приложению осуществляется по следующему шаблону:
| Параметр | Значение |
|---|---|
| Префикс | linuxpatch |
| Домен | hostkey.in |
| Полный шаблон | linuxpatch{Server_ID}.hostkey.in |
Структура файлов и каталогов¶
После завершения процесса установки структура данных на сервере будет следующей:
-
/root/linuxpatch— рабочая директория приложения, содержащая файлы репозитория и конфигурационные файлы Docker. -
/root/linuxpatch/data— основная директория с данными приложения (включая.env, логи и сертификаты). -
/root/linuxpatch/data/.env— файл с переменными окружения и учетными данными. -
/root/linuxpatch/data/certs— хранилище SSL-сертификатов. -
/root/linuxpatch/data/logs— файлы журналов работы приложения.
Процесс установки приложения¶
Развертывание приложения выполняется в несколько этапов с использованием автоматизированного процесса:
-
Подготовка окружения: Установка Docker и запуск службы Docker.
-
Загрузка исходного кода: Клонирование репозитория
https://github.com/linuxpatch/self-hosted.gitв директорию/root/linuxpatch. -
Создание инфраструктуры: Создание необходимых томов Docker (например,
nginx_secrets). -
Инициализация конфигурации: Запуск установочного скрипта
configure.sh, который выполняет следующие действия: -
Создает необходимые поддиректории (
data/certs,data/logs). -
Генерирует уникальные случайные пароли для базы данных, SMTP и администратора.
-
Формирует файл
.envс настройками подключения к базе данных, Redis и параметрами сервера. -
Обновляет файл
docker-compose.yml, подставляя в него сгенерированные значения. -
Запуск сервисов: Выполнение команды
docker compose up -dдля запуска всех компонентов приложения.
Права доступа и безопасность¶
-
Все файлы в директории
/root/linuxpatchпринадлежат пользователюroot. -
Директории с сертификатами и логами имеют права доступа
755. -
Конфигурационные файлы защищены от несанкционированного изменения.
-
Доступ к приложению осуществляется через прокси-сервер, который обеспечивает SSL-шифрование.
Базы данных¶
Приложение использует две системы управления данными:
-
MySQL (Percona Server 8.0):
-
Используется для хранения основных данных приложения.
-
Данные хранятся в Docker-томе
linuxpatch-mysql-data. -
Redis:
-
Используется как хранилище сессий и кэша.
-
Данные хранятся в Docker-томе
linuxpatch-redis-data.
Контейнеры Docker и их запуск¶
Приложение работает в составе группы контейнеров, объединенных в общую сеть linuxpatch-app-network.
| Имя контейнера | Образ | Порты | Тома (Volumes) | Описание |
|---|---|---|---|---|
nginx | jonasal/nginx-certbot:latest | 80, 443 | nginx_secrets, /data/nginx/user_conf.d | Прокси-сервер и управление SSL (Certbot) |
linuxpatch-app | linuxpatch/appliance:latest | 80, 443 | ./data:/app/data | Основное приложение |
linuxpatch-db | percona/percona-server:8.0 | — | linuxpatch-mysql-data | База данных MySQL |
linuxpatch-redis | redis:6 | — | linuxpatch-redis-data | Хранилище Redis |
Кастомные скрипты и дополнительные настройки¶
В процессе развертывания используется установочный скрипт configure.sh. Его назначение:
-
Автоматическая генерация безопасных учетных данных (пароли БД, SMTP, Admin).
-
Создание файла конфигурации
.envна основе системных параметров сервера. -
Настройка путей к сертификатам и логам внутри контейнеров.
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо выполнить следующие действия:
-
Перейти в директорию с приложением:
cd /root/linuxpatch. -
Обновить образы до последних версий:
-
Перезапустить контейнеры для применения изменений:
Расположение конфигурационных файлов и данных¶
-
Конфигурация приложения:
/root/linuxpatch/data/.env -
Логи приложения:
/root/linuxpatch/data/logs(внутри контейнера) или в директории проекта. -
Сертификаты:
/root/linuxpatch/data/certs
Доступные порты для подключения¶
-
80/TCP— HTTP (перенаправление на HTTPS). -
443/TCP— HTTPS (основной порт доступа к интерфейсу).