Обзор развертывания 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).