Обзор развертывания CloudPanel на сервере¶
Предварительные требования и базовые условия¶
Для развертывания CloudPanel требуется чистая среда на базе Ubuntu с определенными системными конфигурациями. Перед началом установки должны быть выполнены следующие предварительные требования:
-
Операционная система: Ubuntu (на базе Debian).
-
Привилегии: Для всех шагов установки требуются права root или привилегии
sudo. -
Доступность портов: Порты
80,443и3306должны быть свободны и не заняты другими службами (например, существующими экземплярами MySQL, MariaDB, Nginx или Apache). -
Сеть: Сервер должен иметь исходящий доступ в интернет для загрузки установщика и необходимых пакетов.
-
Управление пакетами: Менеджер пакетов
aptдолжен быть функциональным и обновленным.
FQDN конечной панели¶
Полное доменное имя (FQDN) для доступа к интерфейсу CloudPanel следует формату, определенному конфигурацией хоста. На основе предоставленных переменных URL доступа имеет вид:
cloudPanel<Server ID>.hostkey.in:443
Где <Server ID> представляет уникальный идентификатор, назначенный экземпляру сервера. Панель доступна через HTTPS на порту 443.
Структура файлов и каталогов¶
В процессе развертывания создаются определенные каталоги для конфигурации, данных и сертификатов. Основные расположения:
-
/etc/cloudpanel: Основной каталог установки приложения CloudPanel. -
/root/nginx: Каталог, содержащий конфигурацию Docker Compose для обратного прокси-сервера и управления SSL. -
/root/nginx/compose.yml: Файл Docker Compose, определяющий службы Nginx и Certbot. -
/data/nginx/user_conf.d/: Каталог, содержащий пользовательские файлы конфигурации Nginx для панели. -
/data/nginx/nginx-certbot.env: Файл окружения для контейнера Nginx-Certbot. -
/etc/letsencrypt: Точка монтирования для SSL-сертификатов, управляемых контейнером Docker.
Процесс установки приложения¶
CloudPanel устанавливается с помощью официального скрипта установщика, который загружается и выполняется с определенными модификациями для обеспечения совместимости с целевой средой.
-
Подготовка системы:
-
Существующие службы баз данных (MySQL, MariaDB, Percona) и веб-серверы (Nginx, Apache) останавливаются и отключаются для предотвращения конфликтов портов.
-
Удаляются оставшиеся пакеты и каталоги данных, связанные с предыдущими установками баз данных.
-
Кэш
aptочищается и обновляется.
-
-
Установка пакетов:
- Устанавливаются основные базовые пакеты, включая
curl,wget,lsof,ca-certificates,gnupg,apt-transport-httpsиapt-utils.
- Устанавливаются основные базовые пакеты, включая
-
Загрузка и модификация установщика:
-
Скрипт установщика загружается с
https://installer.cloudpanel.io/ce/v2/install.shв/root/cloudpanel-install.sh. -
Скрипт модифицируется для принудительного использования MySQL 8.0 (
DB_ENGINE="MYSQL_8.0") вместо версии по умолчанию. -
Команда обновления внутри скрипта изменяется для разрешения понижения версий пакетов (
apt -y --allow-downgrades upgrade) для обеспечения разрешения зависимостей.
-
-
Выполнение:
-
Установка выполняется путем запуска
/root/cloudpanel-install.sh. -
В процессе установки переменная
DEBIAN_FRONTENDустанавливается в значениеnoninteractive, аTERM— вxtermдля обеспечения бесконтактного выполнения.
-
Права доступа и безопасность¶
Меры безопасности реализуются через управление портами и изоляцию служб.
-
Принудительное использование портов: Процесс установки проверяет, что порты
80,443и3306не используются. Если на этих портах обнаружены слушатели, установка завершается ошибкой для предотвращения конфликтов. -
Изоляция служб: Конфликтующие службы, такие как
mysql,mariadb,nginxиapache2, явно останавливаются и отключаются на этапе подготовки. -
Доступ пользователя: Файлы установки и конфигурации принадлежат пользователю
root.
Базы данных¶
CloudPanel использует внутреннюю базу данных для своей работы.
-
Движок базы данных: MySQL 8.0.
-
Метод подключения: Приложение подключается к базе данных локально.
-
Расположение хранения: Данные базы данных хранятся в стандартном каталоге данных MySQL, управляемом установкой CloudPanel (обычно
/var/lib/mysqlили эквивалент в контейнеризованной среде в зависимости от поведения конкретной версии установщика, хотя скрипт установщика ориентирован на нативную установку). -
Конфигурация: Установщик автоматически настраивает движок базы данных в процессе развертывания.
Контейнеры Docker и их развертывание¶
Для управления SSL-сертификатами и работы в качестве обратного прокси-сервера для интерфейса CloudPanel развертывается контейнер Docker.
-
Образ контейнера:
jonasal/nginx-certbot:latest. -
Метод развертывания: Docker Compose.
-
Расположение файла Compose:
/root/nginx/compose.yml. -
Имя службы:
nginx. -
Политика перезапуска:
unless-stopped. -
Режим сети:
host. -
Томы (Volumes):
-
nginx_secrets: Внешний том, смонтированный в/etc/letsencryptдля хранения SSL-сертификатов. -
/data/nginx/user_conf.d: Смонтирован в/etc/nginx/user_conf.dвнутри контейнера для пользовательских конфигураций.
-
Прокси-серверы¶
Развертывание включает обратный прокси-сервер Nginx, настроенный с Certbot для терминации SSL.
-
ПО прокси-сервера: Nginx (запускается внутри контейнера Docker).
-
Управление SSL: Certbot интегрирован в контейнер Nginx для обработки генерации и продления SSL-сертификатов.
-
Настройка электронной почты: Электронный адрес для сертификата установлен как
hkadm@hostkey.com. -
Путь конфигурации: Пользовательские конфигурации Nginx находятся в
/data/nginx/user_conf.d/. -
Блок Location: Конфигурация Nginx модифицируется для маршрутизации трафика из корневого расположения (
location /) на приложение CloudPanel. -
Переменные окружения: Загружаются из
/data/nginx/nginx-certbot.env.
Настройки прав доступа¶
Права доступа к файлам и каталогам устанавливаются для обеспечения безопасной работы и правильного доступа для служб.
-
/root/nginx: Принадлежитroot:rootс правами0644. -
/root/nginx/compose.yml: Принадлежитroot:rootс правами0644. -
/root/cloudpanel-install.sh: Для скрипта установщика установлены права на выполнение (0755). -
/data/nginx/user_conf.d: Смонтирован в контейнер Docker, права доступа управляются внутренними процессами контейнера.
Расположение файлов конфигурации и данных¶
Следующая таблица суммирует ключевые расположения конфигураций и данных:
| Файл или каталог | Путь | Описание |
|---|---|---|
| Основное приложение | /etc/cloudpanel | Основной каталог установки CloudPanel. |
| Docker Compose | /root/nginx/compose.yml | Определение контейнера Nginx/Certbot. |
| Конфигурации Nginx | /data/nginx/user_conf.d/ | Пользовательские файлы конфигурации Nginx. |
| Переменные окружения Nginx | /data/nginx/nginx-certbot.env | Переменные окружения для контейнера прокси-сервера. |
| SSL-сертификаты | /etc/letsencrypt | Хранилище SSL-сертификатов (через том Docker). |
| Скрипт установщика | /root/cloudpanel-install.sh | Модифицированный скрипт установки. |
Доступные порты для подключения¶
Следующие порты используются развернутыми службами:
-
Порт 443: HTTPS-трафик для веб-интерфейса CloudPanel (внешний доступ).
-
Порт 80: HTTP-трафик для перенаправления SSL и задач Let's Encrypt.
-
Порт 3306: Подключение к базе данных MySQL (внутреннее использование).
-
Порт 8443: Порт внутренней связи (настроен в
group_varsкакinternal_port).
Запуск, остановка и обновление¶
Управление службами для компонентов осуществляется следующим образом:
-
Служба CloudPanel: Управляется менеджером служб системы (systemd) под именем
cloudpanel(или аналогичным, в зависимости от финальной регистрации службы установщиком). -
Служба прокси-сервера Nginx: Управляется через Docker Compose.
-
Запуск/Перезапуск:
docker compose up -d, выполняемый из каталога/root/nginx. -
Остановка:
docker compose down, выполняемый из каталога/root/nginx.
-
-
Системная служба Nginx: Нативная служба Nginx хоста запускается и включается через
systemctl start nginxиsystemctl enable nginx, если это требуется средой, хотя основной прокси-сервер работает в контейнере.