Обзор развертывания Joomla на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие условия:
-
Операционная система: Ubuntu.
-
Установленный Docker и среда выполнения контейнеров.
-
Доступ к портам 80 (для получения SSL) и 443 (HTTPS).
-
Наличие прав суперпользователя (root) для управления системными директориями и Docker.
FDQN итоговой панели на домене hostkey.in¶
Для доступа к приложению используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | joomla |
| Домен | hostkey.in |
| Полный шаблон | joomla{Server_ID}.hostkey.in |
Структура файлов и каталогов¶
В процессе работы приложения используются следующие директории:
-
/root/nginx— рабочая директория для конфигурации прокси-сервера. -
/data/nginx/user_conf.d— хранилище пользовательских конфигураций Nginx. -
/data/nginx/nginx-certbot.env— файл с переменными окружения для SSL.
Данные приложения и базы данных хранятся в именованных томах Docker:
-
mysql_data— данные базы данных MySQL. -
joomla_data— файлы веб-приложения Joomla.
Процесс установки приложения¶
Развертывание выполняется путем автоматизированной настройки системы, которая включает следующие этапы:
-
Установка среды Docker в операционную систему.
-
Загрузка необходимых образов из реестра (MySQL и Joomla).
-
Развертывание контейнеров базы данных и веб-сервера.
-
Настройка прокси-сервера Nginx для обеспечения работы через HTTPS с использованием SSL-сертификатов.
Приложение использует версии образов mysql:8.0 и joomla:latest.
Контейнеры Docker и их запуск¶
Для работы приложения используются следующие контейнеры:
| Имя контейнера | Образ | Порты | Тома (volumes) | Переменные окружения | Политика перезапуска |
|---|---|---|---|---|---|
joomla_db | mysql:8.0 | 3306:3306 | mysql_data:/var/lib/mysql | MYSQL_ROOT_PASSWORD, MYSQL_DATABASE, MYSQL_USER, MYSQL_PASSWORD | always |
joomla | joomla:latest | 8080:80 | joomla_data:/var/www/html | JOOMLA_DB_HOST, JOOMLA_DB_NAME, JOOMLA_DB_USER, JOOMLA_DB_PASSWORD | always |
Также для обеспечения работы веб-сервера и управления SSL используется контейнер:
- Nginx-Certbot: Образ
jonasal/nginx-certbot:latest. Работает в режимеhost. Используется для автоматического получения и обновления сертификатов через Let's Encrypt. Подключает внешние томаnginx_secretsи пользовательские конфигурации из/data/nginx/user_conf.d.
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо выполнить следующие действия:
-
Перейти в директорию с файлом compose (если используется Docker Compose).
-
Выполнить команду для загрузки новых версий образов и перезапуска контейнеров:
Расположение конфигурационных файлов и данных¶
-
Конфигурация базы данных: определяется через переменные окружения в контейнере
joomla_db. -
Файлы сайта: находятся внутри тома
joomla_data(внутри контейнера/var/www/html). -
Настройки проксирования: файл конфигурации Nginx создается автоматически по пути
/data/nginx/user_conf.d/{prefix}{server_id}.hostkey.in.conf.
Доступные порты для подключения¶
| Порт | Назначение |
|---|---|
80 | HTTP (для проверки SSL) |
443 | HTTPS (основной доступ к приложению) |
3306 | MySQL (доступ к базе данных внутри сети Docker/хоста) |
8080 | Внутренний порт приложения Joomla |
Запуск, остановка приложения¶
Управление контейнерами осуществляется через Docker:
-
Остановка всех сервисов приложения:
-
Запуск сервисов (если они были остановлены):