Обзор развертывания CloudPanel на сервере¶
Предварительные требования¶
Для успешного развертывания системы необходимо выполнить следующие условия:
-
Операционная система: Ubuntu (поддерживаемая версия).
-
Права доступа: наличие прав суперпользователя (
root) или возможность выполнения команд черезsudo. -
Свободные порты: порты
80,443и3306должны быть не заняты другими службами. -
Отсутствие конфликтов: на сервере не должно быть запущены службы
mysql,mariadb,nginx,apache2или ранее установленный пакетcloudpanel. -
Сетевое подключение: доступ к интернету для загрузки установщика и обновлений пакетов.
Структура файлов и каталогов¶
Система использует следующие директории и файлы для хранения конфигурации и данных:
-
/root/cloudpanel-install.sh— скрипт установчика CloudPanel. -
/etc/cloudpanel— каталог конфигурации основного приложения. -
/root/nginx— рабочая директория для запуска контейнеров прокси-сервера. -
/root/nginx/compose.yml— файл конфигурации Docker Compose для Nginx и Certbot. -
/data/nginx/user_conf.d— каталог для пользовательских конфигурационных файлов Nginx. -
/data/nginx/nginx-certbot.env— файл переменных окружения для сервиса Certbot. -
/etc/letsencrypt— точка монтирования для хранения SSL-сертификатов (внутри контейнера).
Процесс установки приложения¶
Установка выполняется с помощью официального скрипта от разработчика с последующей модификацией для использования конкретной версии базы данных:
-
Скачивается установочный скрипт по адресу
https://installer.cloudpanel.io/ce/v2/install.shв директорию/root. -
Скрипт модифицируется для принудительной установки версии базы данных
MYSQL_8.0вместоMYSQL_8.4. -
В скрипт вносится изменение для разрешения установки пакетов с понижением версии (
--allow-downgrades). -
Запускается скрипт установки
/root/cloudpanel-install.sh. -
После завершения установки служба
nginxавтоматически запускается и добавляется в автозагрузку.
Контейнеры Docker и их запуск¶
Для работы с SSL-сертификатами и проксированием трафика используется Docker Compose. Конфигурация находится в файле /root/nginx/compose.yml.
Список сервисов:
-
nginx— контейнер с образомjonasal/nginx-certbot:latest. -
Режим сети:
host. -
Политика перезапуска:
unless-stopped. -
Переменная окружения
CERTBOT_EMAILустановлена наhkadm@hostkey.com. -
Файл переменных окружения:
/data/nginx/nginx-certbot.env. -
Монтированные тома:
-
nginx_secrets(внешний том) монтируется в/etc/letsencrypt. -
Локальная директория
/data/nginx/user_conf.dмонтируется в/etc/nginx/user_conf.d.
-
Запуск контейнеров осуществляется командой:
Команда выполняется из директории /root/nginx.
Прокси серверы¶
В качестве прокси-сервера используется контейнеризированный Nginx с поддержкой автоматического получения SSL-сертификатов через Certbot.
-
Доменное имя и конфигурация хоста настраиваются в файлах, расположенных в директории
/data/nginx/user_conf.d. -
В конфигурационных файлах с расширением
.hostkey.in.confблокlocationдля пути/django_clientзаменяется на корневой путь/. -
Сертификаты хранятся в томе
nginx_secrets, который монтируется в/etc/letsencryptвнутри контейнера. -
Электронная почта для уведомлений от Let's Encrypt указана как
hkadm@hostkey.com.
Права доступа и безопасность¶
-
Все операции установки и настройки выполняются от имени пользователя
root. -
Директория
/root/nginxсоздается с правами владельцаrootи группойroot(режим0644). -
Файл конфигурации
/root/nginx/compose.ymlимеет владельцаrootи группуroot(режим0644). -
Перед установкой принудительно останавливаются и удаляются службы, которые могут занимать порты
80,443и3306. -
Удаляются остатки пакетов
mysql,mariadb,percona-serverи их данные в директориях/var/lib/mysql,/etc/mysql,/var/run/mysqld.
Запуск, остановка и обновление¶
Управление основным приложением CloudPanel осуществляется через системный менеджер systemd:
-
Запуск службы:
-
Добавление в автозагрузку:
Управление контейнерами прокси-сервера:
-
Запуск контейнеров:
-
Остановка контейнеров:
-
Перезапуск контейнеров: