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

Обзор развертывания LinuxPatch на сервере

Предварительные требования

Для корректной работы приложения требуются следующие условия:

  • Операционная система с поддержкой Docker и Docker Compose.

  • Доступ к интернету для загрузки образов и клонирования репозитория.

  • Наличие установленного сервиса docker.

  • Права доступа root или через sudo для управления контейнерами и директориями.

FDQN итоговой панели на домене hostkey.in

Доступ к приложению осуществляется по следующему шаблону:

Параметр Значение
Префикс linuxpatch
Домен hostkey.in
Полный шаблон linuxpatch{Server_ID_from_Invapi}.hostkey.in

Структура файлов и каталогов

Основные данные приложения и конфигурации располагаются в следующих директориях:

  • /root/linuxpatch — основная рабочая директория приложения, содержащая исходный код (репозиторий) и файлы развертывания.

  • /root/linuxpatch/data — директория с данными приложения, включая конфигурационные файлы (.env), сертификаты (certs) и логи (logs).

  • /data/nginx/user_conf.d — директория для конфигурационных файлов прокси-сервера Nginx.

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

Развертывание выполняется путем клонирования репозитория https://github.com/linuxpatch/self-hosted.git в директорию /root/linuxpatch.

Процесс включает:

  1. Создание необходимых директорий и томов Docker.

  2. Генерацию конфигурационного файла .env с уникальными учетными данными (база данных, SMTP, администратор).

  3. Формирование docker-compose.yml на основе шаблона с подстановкой переменных окружения.

  4. Запуск контейнеров через docker compose up -d.

Права доступа и безопасность

  • Директория /root/linuxpatch имеет права владельца root:root с режимом 0644.

  • Директории для сертификатов и логов внутри контейнера (data/certs, data/logs) имеют режим доступа 755.

  • Все учетные данные (пароли базы данных, SMTP, администратора) генерируются случайным образом при первой установке и сохраняются в файле /root/linuxpatch/data/.env.

Базы данных

Приложение использует две основные системы хранения:

Тип БД Образ Назначение
MySQL (Percona) percona/percona-server:8.0 Основное хранилище данных приложения
Redis redis:6 Хранение сессий и кэширование

Данные баз данных сохраняются в именованных томах Docker: linuxpatch-mysql-data и linuxpatch-redis-data.

Контейнеры Docker и их запуск

Приложение развернуто в составе группы контейнеров, объединенных в сеть linuxpatch-app-network.

Nginx (Proxy/SSL)

  • Имя образа: jonasal/nginx-certbot:latest

  • Порты: 80:80, 443:443

  • Тома:

    • nginx_secrets:/etc/letsencrypt

    • /data/nginx/user_conf.d:/etc/nginx/user_conf.d

  • Переменные окружения: CERTBOT_EMAIL=hkadm@hostkey.com

  • Политика перезапуска: unless-stopped

LinuxPatch App (Основное приложение)

  • Имя образа: linuxpatch/appliance:latest

  • Команда: ./web

  • Порты: 80, 443 (через expose)

  • Тома: ./data:/app/data

  • Переменные окружения: Настройки БД, Redis, SMTP, TLS и учетные данные администратора.

  • Политика перезапуска: unless-stopped

Percona Server (База данных)

  • Имя образа: percona/percona-server:8.0

  • Команда: mysqld

  • Тома: linuxpatch-mysql-data:/var/lib/mysql

  • Политика перезапуска: unless-stopped

Redis (Кэш)

  • Имя образа: redis:6

  • Команда: redis-server

  • Тома: linuxpatch-redis-data:/data

  • Политика перезапуска: unless-stopped

Инструкция по обновлению приложения

Обновление выполняется через подтягивание новых версий образов и перезапуск контейнеров:

docker compose pull && docker compose up -d

Настройки прав

Для корректной работы скриптов конфигурации установлены следующие права:

  • Файл configure.sh имеет права на выполнение (0744).

  • Директории данных и конфигов создаются с соответствующими правами доступа для обеспечения возможности записи логов и чтения сертификатов.

Доступные порты для подключения

Порт Протокол Назначение
80 TCP HTTP (перенаправление)
443 TCP HTTPS (основной доступ)
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×