Обзор развертывания Webmin на сервере¶
Предварительные требования¶
Для успешного развертывания приложения необходимо наличие сервера с одной из следующих операционных систем:
-
Debian
-
Ubuntu
-
RHEL (Red Hat Enterprise Linux) или его производные
Требуется наличие прав суперпользователя (root) для выполнения операций установки и настройки. Приложение использует порт 10000 для веб-интерфейса.
Процесс установки приложения¶
Установка выполняется через официальные репозитории разработчика. Процесс различается в зависимости от дистрибутива.
Для систем на базе Debian и Ubuntu:
-
Устанавливаются зависимости:
gnupg2,curl,wget. -
Добавляется ключ GPG репозитория Webmin с адреса
https://www.webmin.com/jcameron-key.asc. -
Добавляется репозиторий:
deb [arch=amd64] http://download.webmin.com/download/repository sarge contrib. -
Обновляется кэш пакетов.
-
Устанавливается пакет
webmin.
Для систем на базе RHEL:
-
Скачивается скрипт настройки репозитория с адреса
https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.shв директорию/tmp. -
Запускается скрипт установки репозитория.
-
Удаляется временный скрипт из
/tmp. -
Устанавливается пакет
webminчерез менеджер пакетовyum.
Контейнеры Docker и их запуск¶
Для обеспечения работы с SSL-сертификатами и проксирования трафика используется контейнеризация.
Создается директория /root/nginx для хранения конфигурации контейнеров. Генерируется файл конфигурации docker compose по пути /root/nginx/compose.yml.
Контейнер запускается с использованием образа jonasal/nginx-certbot:latest. Параметры запуска контейнера:
-
Режим сети:
host. -
Переменная окружения
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, работающий в контейнере. Конфигурация проксирования добавляется в файл /data/nginx/user_conf.d/{{ prefix }}{{ server_id }}.hostkey.in.conf. В блоке location / устанавливается правило пересылки запросов на внутренний адрес http://127.0.0.1:10000.
Права доступа и безопасность¶
Настройка брандмауэра зависит от используемой операционной системы.
Для систем с firewalld:
-
Открывается порт
10000/tcpв зонеpublic. -
Правило применяется немедленно и сохраняется в постоянную конфигурацию.
Для систем с ufw (Ubuntu/Debian):
-
Проверяется статус брандмауэра.
-
Если статус активен, добавляется правило для пропуска трафика на порт
10000/tcp. -
Конфигурация брандмауэра перезагружается.
Структура файлов и каталогов¶
Основные пути к файлам и директориям:
-
Конфигурация Docker Compose:
/root/nginx/compose.yml. -
Директория для конфигурации Nginx:
/data/nginx/user_conf.d. -
Директория для секретов Let's Encrypt:
/etc/letsencrypt(монтируется в контейнер). -
Файл окружения для Nginx:
/data/nginx/nginx-certbot.env.