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

Обзор развертывания 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-сертификатов (внутри контейнера).

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

Установка выполняется с помощью официального скрипта от разработчика с последующей модификацией для использования конкретной версии базы данных:

  1. Скачивается установочный скрипт по адресу https://installer.cloudpanel.io/ce/v2/install.sh в директорию /root.

  2. Скрипт модифицируется для принудительной установки версии базы данных MYSQL_8.0 вместо MYSQL_8.4.

  3. В скрипт вносится изменение для разрешения установки пакетов с понижением версии (--allow-downgrades).

  4. Запускается скрипт установки /root/cloudpanel-install.sh.

  5. После завершения установки служба 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.

Запуск контейнеров осуществляется командой:

docker compose up -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:

  • Запуск службы:

    systemctl start nginx
    

  • Добавление в автозагрузку:

    systemctl enable nginx
    

Управление контейнерами прокси-сервера:

  • Запуск контейнеров:

    cd /root/nginx
    docker compose up -d
    

  • Остановка контейнеров:

    cd /root/nginx
    docker compose down
    

  • Перезапуск контейнеров:

    cd /root/nginx
    docker compose restart
    

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×