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

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

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

  1. Операционная система – Ubuntu 20.04/22.04 (или совместимая).
  2. Пользовательroot. Все операции выполняются от имени root, потому что в скриптах используются команды sudo и прямой доступ к системным файлам.
  3. Свободные порты – 80, 443 и 3306.
  4. Доступ к Интернету – необходим для скачивания пакетов и установщика CloudPanel.

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

После запуска скриптов создаются следующие каталоги и файлы:

/root/cloudpanel-install.sh        # Скачанный установщик CloudPanel
/root/nginx/
└───compose.yml                    # Docker‑compose для nginx‑certbot

Docker‑compose использует внешнее томо‑volume nginx_secrets, которое хранит сертификаты Let’s Encrypt.
Папка /data/nginx/user_conf.d/ должна содержать конфигурационные файлы сайтов (в том числе пользовательские конфиги prefix + server_id + .hostkey.in.conf).

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

  • /root/cloudpanel-install.sh – права 0755 (читаем/выполняем только root).
  • /root/nginx/compose.yml – права 0644 (читаем только root).
  • Папка /root/nginx/ – владелец root, группа root.
  • Docker‑volume nginx_secrets создаётся с дефолтными правами, которые ограничивают доступ приложений внутри контейнера.

Базы данных

В процессе установки CloudPanel используется MySQL 8.0.
Скрипт перед установкой очищает старые пакеты и данные MySQL/Percona/MariaDB:

  • Удаляются пакеты percona-server-*, mysql-server, mariadb-server и их клиентские части.
  • Удаляется каталог /var/lib/mysql и конфигурационные файлы.

После установки CloudPanel, MariaDB/MySQL запустятся автоматически в составе сервиса cloudpanel.

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

1. Установка Docker

Скрипт docker-certbot.yml в первой задаче вызывает роль, которая устанавливает Docker.
После установки выполняются остальные шаги.

2. Подготовка конфигурации

- Создаётся каталог /root/nginx
- Генерируется файл compose.yml из шаблона
- Параметр CERTBOT_EMAIL = hkadm@hostkey.com
- Переменные из /data/nginx/nginx-certbot.env (не показываются в исходниках)

3. Запуск контейнера

Команда docker compose up -d запускает сервис nginx из образа jonsal/nginx-certbot:latest.
Контейнер использует network_mode: host, поэтому работает на системных портах 80/443.

4. Монтирование томов

  • nginx_secrets:/etc/letsencrypt – хранит сертификаты.
  • /data/nginx/user_conf.d:/etc/nginx/user_conf.d – пользовательские конфиги Nginx.

Прокси серверы

Docker‑образ jonsal/nginx-certbot уже содержит Nginx и Certbot.
Пользовательские конфиги загружаются из /data/nginx/user_conf.d.

В файле /data/nginx/user_conf.d/{{ prefix }}{{ server_id }}.hostkey.in.conf изменяется строка:

location /django_client

на

location /

для корректной маршрутизации трафика.

Настройки прав, запуск, остановка и обновление

Запуск

  • После выполнения всех задач из ubuntu.yml и docker-certbot.yml, контейнер запускается автоматически (docker compose up -d).
  • Сервис nginx (не контейнерный) ставится в автозапуск и запускается systemd.

Остановка

  • Контейнер можно остановить: docker compose down в каталоге /root/nginx.
  • Сервис nginx: systemctl stop nginx.

Обновление

  1. Docker‑контейнер – обновите образ, выполнив:
docker pull jonsal/nginx-certbot:latest
docker compose down
docker compose up -d
  1. CloudPanel – обновление производится через саму панель, если она включена.
  2. Дополнительные пакеты – обновить через apt-get update && apt-get upgrade.

Тестирование после развертывания

  • Порт 80 должен слушать Nginx‑certbot: ss -lntp | grep ':80'.
  • Порт 443 – HTTPS сертификат доступен.
  • Порт 3306 – MySQL/MariaDB доступен для CloudPanel.

Всё, что требуется для полноценного функционирования CloudPanel, устанавливается автоматически, а Docker‑контейнер обеспечивает управление HTTPS‑сертификатами через Certbot.

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