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

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

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

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

  • Операционная система: Ubuntu (совместимая с Docker Engine).

  • Привилегии: Доступ root или права пользователя с sudo.

  • Docker Engine: Должен быть установлен и запущен runtime Docker.

  • Сетевое подключение: Сервер должен иметь доступ к интернету для получения образов контейнеров и получения SSL-сертификатов.

  • Порты: Убедитесь, что следующие порты открыты в межсетевом экране (firewall) хоста и роутере:

  • 9987 (UDP) для голосового трафика.

  • 10011 (TCP) для интерфейса запросов (query interface).

  • 10022 (TCP) для SSH-интерфейса.

  • 30033 (TCP) для передачи файлов.

  • 41144 (TCP) для передачи файлов.

  • 443 (TCP) для веб-интерфейса HTTPS.

FQDN финальной панели

Веб-интерфейс управления TeamSpeak доступен по следующему формату полностью доменного имени (Fully Qualified Domain Name, FQDN):

  • teamspeak<Server ID>.hostkey.in

  • Приложение работает на порту 443 с включенным шифрованием SSL/TLS.

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

Для развертывания используется следующая структура каталогов для хранения постоянных данных и файлов конфигурации:

  • /opt/teamspeak: Хранит основные данные контейнера сервера TeamSpeak.

  • /opt/tsi-web: Хранит данные и конфигурацию контейнера веб-интерфейса TS3-Manager.

  • /data/nginx: Содержит конфигурацию Nginx и SSL-сертификаты.

  • /data/nginx/user_conf.d: Хранит специфическую конфигурацию сервера для прокси TeamSpeak.

  • /root/nginx: Содержит определение Docker Compose для стека прокси.

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

Приложение развертывается с использованием контейнеров Docker. Установка состоит из двух основных компонентов: сервера TeamSpeak и веб-интерфейса TS3-Manager.

  • Сервер TeamSpeak:

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

  • Образ: teamspeak:latest

  • Лицензия: Автоматически принимает лицензионное соглашение через переменную окружения TS3SERVER_LICENSE="accept".

  • Веб-интерфейс TS3-Manager:

  • Имя контейнера: ts3-manager

  • Образ: joni1802/ts3-manager:v2.2.3

  • Аутентификация: При развертывании генерируется уникальный JWT_SECRET для защиты веб-сессии.

Контейнеры Docker и их развертывание

Для развертывания используется сеть моста (bridge) Docker для обеспечения связи между хостом и контейнерами.

  • Сетевая конфигурация:

  • Оба контейнера работают в сети bridge.

  • Контейнер TeamSpeak включает проверку состояния (health check), которая проверяет доступность порта 10022.

  • Монтирование томов (Volume Mounts):

  • Контейнер TeamSpeak монтирует /opt/teamspeak в /data внутри контейнера.

  • Контейнер TS3-Manager монтирует /opt/tsi-web в /app/data внутри контейнера.

  • Отображение портов (Port Mappings):

  • Контейнер TS3-Manager отображает внутренний порт 8080 на порт хоста 8080.

Прокси-серверы

Доступ к веб-интерфейсу TS3-Manager обрабатывается контейнером Nginx с именем nginx-certbot. Эта настройка обеспечивает шифрование SSL/TLS через Certbot.

  • Образ контейнера: jonasal/nginx-certbot:latest

  • Функциональность:

  • Слушает порт 443 для HTTPS-трафика.

  • Перенаправляет HTTP-трафик (порт 80) на HTTPS.

  • Проксирует запросы к бэкенду TS3-Manager, работающему по адресу http://127.0.0.1:8080.

  • Управление сертификатами:

  • Использует инструмент Certbot для получения и продления SSL-сертификатов для домена.

  • Хранит сертификаты в /etc/letsencrypt (отображается через том nginx_secrets).

  • Конфигурация:

  • Конфигурация сервера находится в /data/nginx/user_conf.d/ с именем файла, соответствующим финальному домену.

  • Определение Docker Compose для прокси хранится в /root/nginx/compose.yml.

Доступные порты для подключения

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

Порт Протокол Служба Описание
9987 UDP TeamSpeak Voice Основной канал голосовой связи.
10011 TCP TeamSpeak Query Интерфейс запросов к серверу.
10022 TCP TeamSpeak SSH SSH-доступ к экземпляру сервера.
30033 TCP TeamSpeak File Служба передачи файлов.
41144 TCP TeamSpeak File Дополнительная служба передачи файлов.
443 TCP TS3-Manager Безопасный веб-интерфейс (HTTPS).
8080 TCP TS3-Manager Прямой веб-интерфейс (HTTP, проксируется через Nginx).

Запуск, остановка и обновление

Контейнеры TeamSpeak и TS3-Manager управляются дамоном Docker с установленной политикой перезапуска restart_policy в значение unless-stopped.

  • Политика перезапуска: Оба контейнера настроены на автоматический перезапуск, если они не были остановлены вручную.

  • Управление контейнерами: Для управления жизненным циклом контейнеров используются стандартные команды Docker.

  • Чтобы остановить контейнер TeamSpeak: docker stop teamspeak

  • Чтобы запустить контейнер TeamSpeak: docker start teamspeak

  • Чтобы остановить контейнер TS3-Manager: docker stop ts3-manager

  • Чтобы запустить контейнер TS3-Manager: docker start ts3-manager

  • Управление прокси: Стек прокси Nginx управляется через Docker Compose в каталоге /root/nginx.

  • Чтобы перезапустить прокси: docker compose up -d (выполняется из каталога /root/nginx).

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