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

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

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

Для корректной работы приложения необходимы следующие параметры системы и сетевые настройки:

  • Операционная система: Ubuntu.

  • Права доступа: Права суперпользователя (root) для установки системных пакетов и управления Docker.

  • Доменное имя: Настройка DNS должна указывать на IP сервера.

  • Порты:

  • 80 (HTTP) — для получения SSL-сертификатов.

  • 443 (HTTPS) — для доступа к приложению через защищенное соединение.

  • 8080 (внутренний) — для взаимодействия контейнера приложения с прокси-сервером.

FDQN итоговой панели на домене hostkey.in

Для работы веб-интерфейса используется следующий шаблон доменного имени:

Параметр Значение
Префикс drupal
Домен hostkey.in
Полный шаблон drupal{Server_ID_from_Invapi}.hostkey.in

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

В процессе развертывания создаются следующие директории для управления конфигурациями и сертификатами:

  • /root/nginx — рабочая директория для прокси-сервера и Docker Compose.

  • /data/nginx/user_conf.d — директория с конфигурационными файлами Nginx.

  • /data/nginx/nginx-certbot.env — файл переменных окружения для Certbot.

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

Развертывание выполняется в несколько этапов:

  1. Подготовка системы: Установка Docker и создание изолированной сети drupal-net.

  2. Запуск базы данных: Развертывание контейнера MariaDB с настройкой пользователя root и базы данных drupal.

  3. Развертывание приложения: Запуск основного контейнера Drupal, который подключается к базе данных через внутреннюю сеть Docker.

  4. Настройка проксирования и SSL:

  5. Создание конфигурационного файла compose.yml в директории /root/nginx.

  6. Запуск контейнера Nginx с использованием Certbot для автоматического получения и обновления SSL-сертификатов через механизм network_mode: host.

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

Приложение работает в составе нескольких контейнеров, объединенных в сеть drupal-net (для базы данных и приложения) или использующих хостовую сеть (для прокси).

MariaDB

  • Имя образа: mariadb:latest

  • Имя контейнера: drupal_db

  • Переменные окружения:

  • MYSQL_ROOT_PASSWORD — пароль администратора БД.

  • MYSQL_DATABASE — имя базы данных (drupal).

  • MYSQL_USER — пользователь (root).

  • MYSQL_PASSWORD — пароль пользователя.

  • Политика перезапуска: always.

Drupal

  • Имя образа: drupal:latest

  • Имя контейнера: drupal

  • Порты: 8080:80 (проброс порта 8080 хоста на 80 порт контейнера).

  • Переменные окружения:

  • DRUPAL_DB_HOST: drupal_db

  • DRUPAL_DB_NAME: drupal

  • DRUPAL_DB_USER: root

  • DRUPAL_DB_PASSWORD: пароль БД.

  • DRUPAL_DB_PORT: 3306.

  • Политика перезапуска: always.

Nginx (Certbot Proxy)

  • Имя образа: jonasal/nginx-certbot:latest

  • Режим сети: host

  • Тома (volumes):

  • nginx_secrets:/etc/letsencrypt — хранение SSL-сертификатов.

  • /data/nginx/user_conf.d:/etc/nginx/user_conf.d — пользовательские конфигурации Nginx.

  • Политика перезапуска: unless-stopped.

Инструкция по обновлению приложения

Для обновления основного приложения необходимо выполнить следующие действия:

  1. Перейти в директорию с конфигурацией прокси:

    cd /root/nginx
    

  2. Обновить образы и перезапустить контейнеры:

    docker compose pull && docker compose up -d
    

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