Обзор развертывания CloudPanel на сервере¶
Предварительные требования¶
Для успешной установки приложения должны быть соблюдены следующие условия:
-
Операционная система: Ubuntu.
-
Свободные порты: Система должна иметь свободные порты
80,443и3306. Перед установкой все службы, занимающие эти порты (например, MySQL, MariaDB, Nginx или Apache2), должны быть остановлены или удалены. -
Права доступа: Требуются права суперпользователя (
root) для выполнения установки пакетов и настройки системных служб.
FDQN итоговой панели на домене hostkey.in¶
Для работы панели используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | cloudPanel |
| Домен | hostkey.in |
| Полный шаблон | cloudPanel{Server_ID_from_Invapi}.hostkey.in |
Процесс установки приложения¶
Процесс развертывания CloudPanel включает в себя несколько этапов подготовки системы и непосредственной установки:
-
Подготовка операционной системы:
-
Остановка и отключение конфликтующих служб (MySQL, MariaDB, Nginx, Apache2).
-
Полное удаление существующих версий CloudPanel и остаточных файлов баз данных (MySQL/Percona), если они были установлены ранее.
-
Обновление списков пакетов
aptи очистка кэша. -
Установка базовых системных компонентов:
curl,wget,lsof,ca-certificates,gnupg,apt-transport-https,apt-utils. -
Установка основного компонента:
-
Загрузка установочного скрипта из официального репозитория CloudPanel (
install.sh). -
Модификация скрипта для обеспечения совместимости с MySQL 8.0 и разрешения отката версий пакетов.
-
Запуск процесса установки приложения.
-
Настройка проксирования:
-
Развертывание контейнера Nginx с поддержкой SSL (Certbot) для управления сертификатами.
Контейнеры Docker и их запуск¶
Для обеспечения работы веб-сервера и автоматического получения SSL-сертификатов используется следующий контейнер:
| Параметр | Значение |
|---|---|
| Имя образа | jonasal/nginx-certbot:latest |
| Режим сети | host |
| Политика перезапуска | unless-stopped |
| Тома (volumes) | nginx_secrets:/etc/letsencrypt/data/nginx/user_conf.d:/etc/nginx/user_conf.d |
| Переменные окружения | CERTBOT_EMAIL=hkadm@hostkey.com |
Контейнер использует внешний том nginx_secrets для хранения сертификатов и монтирует локальную директорию /data/nginx/user_conf.d в качестве конфигурационных файлов Nginx.
Кастомные скрипты и дополнительные настройки¶
В процессе развертывания выполняются следующие действия:
-
Модификация установщика: Скрипт
install.shподвергается правкам для принудительного использования движка базы данныхMYSQL_8.0вместо стандартногоMYSQL_8.4. -
Настройка проксирования (Nginx): После запуска контейнера Nginx выполняется изменение конфигурации, где путь доступа по умолчанию перенаправляется с
/django_clientна корень/.
Расположение конфигурационных файлов и данных¶
Основные данные и файлы конфигурации распределены следующим образом:
-
Конфигурация Docker Compose:
/root/nginx/compose.yml -
Файлы конфигурации Nginx:
/data/nginx/user_conf.d/ -
Переменные окружения для SSL:
/data/nginx/nginx-certbot.env -
Сертификаты (Let's Encrypt): хранятся в томе
nginx_secrets.
Доступные порты для подключения¶
| Порт | Назначение | Протокол |
|---|---|---|
8443 | Панель управления CloudPanel | HTTPS |
443 | Веб-трафик (через Nginx прокси) | HTTPS |
80 | Веб-трафик (HTTP) | HTTP |
3306 | База данных MySQL | TCP |
Запуск, остановка приложения¶
Управление веб-сервером и проксированием осуществляется через Docker Compose в директории /root/nginx:
-
Запуск:
-
Остановка: