Обзор развертывания Mumble на сервере¶
Предварительные требования и базовые условия¶
Для успешного развертывания голосового сервера Mumble на целевом сервере должны быть выполнены следующие требования:
-
Операционная система: Ubuntu (Linux)
-
Привилегии: Доступ с правами root или эквивалентными привилегиями
sudo -
Движок Docker: Должен быть установлен и запущен для управления контейнеризированными сервисами
-
Настройка домена: Сервер должен быть настроен для разрешения домена
hostkey.in -
Сетевые порты:
-
TCP-порт
443для HTTPS-трафика -
TCP-порт
64738для голосовых соединений Mumble -
UDP-порт
64738для голосовых соединений Mumble
FQDN финальной панели¶
Публичное полностью квалифицированное доменное имя (FQDN) для доступа к сервису Mumble в домене hostkey.in следует стандартной структуре. Конкретный адрес определяется идентификатором сервера:
mumble<Server ID>.hostkey.in:443
Примечание: Само приложение Mumble доступно непосредственно через порт протокола голоса 64738, в то время как домен mumble<Server ID>.hostkey.in на порту 443 настроен для прокси-слоя Nginx.
Структура файлов и каталогов¶
Приложение хранит свои постоянные данные и файлы конфигурации в конкретных местах файловой системы хоста. Структура выглядит следующим образом:
-
Каталог данных Mumble:
/opt/mumble/data -
Этот каталог служит основным местом хранения данных сервера Mumble, включая учетные записи пользователей и настройки голоса.
-
Каталог конфигурации Nginx:
/root/nginx -
Содержит определение Docker Compose для обратного прокси-сервера.
-
Конфигурация пользователя Nginx:
/data/nginx/user_conf.d -
Содержит специфические файлы конфигурации для домена Mumble в среде прокси Nginx.
Процесс установки приложения¶
Голосовой сервер Mumble развертывается с использованием Docker. Процесс установки включает загрузку конкретного образа контейнера и его запуск с маппингом постоянных томов.
-
Установка Docker: Убедитесь, что движок Docker установлен на хосте Ubuntu.
-
Создание каталога: Создается каталог данных
/opt/mumble/dataдля сохранения состояния приложения. -
Получение образа: Образ контейнера загружается из реестра Docker с именем
ajmandourah/mumble. -
Инициализация контейнера: Контейнер запускается со следующими спецификациями:
-
Имя:
mumble -
Политика перезапуска:
always(обеспечивает автоматический перезапуск сервиса после перезагрузки или сбоя) -
Маппинг томов: Каталог хоста
/opt/mumble/dataмонтируется в путь контейнера/data.
-
Контейнеры Docker и их развертывание¶
Развертывание состоит из двух отдельных компонентов в контейнерах: сервера Mumble и обратного прокси Nginx с Certbot.
Контейнер Mumble¶
Контейнер Mumble управляется непосредственно через API Docker или командную строку (CLI). Он открывает порты голосового сервиса на хосте.
-
Образ:
ajmandourah/mumble -
Имя контейнера:
mumble -
Маппинг портов:
-
Порт хоста
64738(TCP) применяется на порт контейнера64738 -
Порт хоста
64738(UDP) применяется на порт контейнера64738 -
Тома:
-
/opt/mumble/data:/data
Контейнер Nginx и Certbot¶
Обратный прокси развертывается с использованием стека Docker Compose для обработки SSL-сертификатов и маршрутизации.
-
Расположение файла Compose:
/root/nginx/compose.yml -
Имя сервиса:
nginx -
Образ:
jonasal/nginx-certbot:latest -
Политика перезапуска:
unless-stopped -
Переменные окружения:
-
CERTBOT_EMAIL:hkadm@hostkey.com -
Режим сети:
host -
Тома:
-
nginx_secrets(внешний) монтируется в/etc/letsencrypt -
Каталог хоста
/data/nginx/user_conf.dмонтируется в/etc/nginx/user_conf.d
Для запуска или обновления стека прокси в каталоге /root/nginx выполняется команда docker compose up -d.
Прокси-серверы¶
Инфраструктура включает обратный прокси-сервер Nginx для управления завершением SSL/TLS и маршрутизацией доменов.
-
Программное обеспечение прокси: Nginx, работающий внутри контейнера Docker (
jonasal/nginx-certbot:latest). -
SSL/Сертификация: Управляется автоматически с помощью Certbot, интегрированного в контейнер Nginx.
-
Конфигурация домена:
-
Прокси слушает порт
443. -
Файлы конфигурации для конкретных доменов находятся в
/data/nginx/user_conf.d. -
Конфигурация Nginx динамически обновляется для включения директивы
proxy_pass, указывающей на внутренний сервис.
Доступные порты для подключения¶
Следующие порты открыты на сервере хоста для внешних подключений:
-
Порт 443 (TCP): Используется для HTTPS-трафика на прокси-сервер Nginx.
-
Порт 64738 (TCP/UDP): Используется для прямых подключений к голосовому серверу Mumble.
Запуск, остановка и обновление¶
Управление сервисами осуществляется с помощью команд Docker.
Управление контейнером Mumble¶
-
Запуск/Перезапуск: Используйте
docker start mumbleилиdocker restart mumble. -
Остановка: Используйте
docker stop mumble. -
Удаление: Используйте
docker rm mumble. -
Обновление образа:
-
Загрузите новый образ:
docker pull ajmandourah/mumble -
Создайте контейнер заново:
docker rm mumble && docker run -d --name mumble -v /opt/mumble/data:/data -p 64738:64738 -p 64738:64738/udp ajmandourah/mumble
Управление стеком прокси Nginx¶
-
Запуск/Обновление: Перейдите в каталог compose и выполните команду обновления:
-
Остановка:
-
Просмотр логов:
Настройки разрешений¶
Разрешения на файлы и каталоги конфигурируются следующим образом в процессе развертывания:
-
Каталог данных (
/opt/mumble/data): -
Владелец:
root -
Группа:
root -
Режим:
0755 -
Каталог конфигурации Nginx (
/root/nginx): -
Владелец:
root -
Группа:
root -
Режим:
0755 -
Файл compose Nginx (
/root/nginx/compose.yml): -
Владелец:
root -
Группа:
root -
Режим:
0644