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

Обзор развертывания 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. Процесс установки включает загрузку конкретного образа контейнера и его запуск с маппингом постоянных томов.

  1. Установка Docker: Убедитесь, что движок Docker установлен на хосте Ubuntu.

  2. Создание каталога: Создается каталог данных /opt/mumble/data для сохранения состояния приложения.

  3. Получение образа: Образ контейнера загружается из реестра Docker с именем ajmandourah/mumble.

  4. Инициализация контейнера: Контейнер запускается со следующими спецификациями:

    • Имя: 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 и выполните команду обновления:

    cd /root/nginx
    docker compose up -d
    

  • Остановка:

    cd /root/nginx
    docker compose down
    

  • Просмотр логов:

    docker compose logs -f
    

Настройки разрешений

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

  • Каталог данных (/opt/mumble/data):

  • Владелец: root

  • Группа: root

  • Режим: 0755

  • Каталог конфигурации Nginx (/root/nginx):

  • Владелец: root

  • Группа: root

  • Режим: 0755

  • Файл compose Nginx (/root/nginx/compose.yml):

  • Владелец: root

  • Группа: root

  • Режим: 0644

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