Обзор развертывания TeamSpeak на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры и условия:
-
Операционная система: Ubuntu.
-
Права доступа: Права суперпользователя (root) для установки пакетов и управления Docker.
-
Сеть: Доступ к интернету для загрузки образов Docker и получения SSL-сертификатов.
-
Порты:
-
9987/udp— голосовой трафик TeamSpeak. -
10011,10022— порты управления (Server Query). -
30033— передача файлов. -
41144— порт для передачи данных. -
80,443— HTTP/HTTPS трафик (через прокси).
FDQN итоговой панели на домене hostkey.in¶
| Параметр | Значение |
|---|---|
| Префикс | teamspeak |
| Домен | hostkey.in |
| Полный шаблон | teamspeak{Server_ID}.hostkey.in |
Структура файлов и каталогов¶
Основные данные приложения и конфигурации распределены по следующим путям:
-
/opt/teamspeak— директория для хранения данных сервера TeamSpeak. -
/opt/tsi-web— директория для данных веб-интерфейса управления (TS3-Manager). -
/root/nginx— конфигурационные файлы иcompose.ymlдля прокси-сервера. -
/data/nginx/user_conf.d— пользовательские конфигурации Nginx.
Процесс установки приложения¶
Развертывание выполняется в несколько этапов:
-
Подготовка системы: Установка Docker и создание сетевого моста
bridge. -
Генерация секретов: Создание уникального ключа
JWT_SECRETдля обеспечения безопасности веб-интерфейса. -
Развертывание контейнеров приложения: Запуск основного сервера TeamSpeak и веб-панели управления через Docker.
-
Настройка проксирования и SSL:
-
Создание конфигурации Nginx для перенаправления трафика с порта
80на443(HTTPS). -
Настройка обратного прокси (Reverse Proxy) для перенаправления HTTPS-трафика на веб-интерфейс управления.
-
Получение SSL-сертификатов через Certbot для обеспечения защищенного соединения.
Контейнеры Docker и их запуск¶
В системе работают три основных контейнера:
TeamSpeak Server¶
-
Образ:
teamspeak:latest -
Порты:
-
9987/udp(голосовой трафик) -
10011,10022,30033,41144(TCP) -
Тома:
/opt/teamspeak:/data -
Переменные окружения:
TS3SERVER_LICENSE="accept" -
Политика перезапуска:
unless-stopped
TS3-Manager (Веб-интерфейс)¶
-
Образ:
joni1802/ts3-manager:v2.2.3 -
Порты:
8080:8080 -
Тома:
/opt/tsi-web:/app/data -
Переменные окружения:
-
PORT="8080" -
JWT_SECRET(сгенерированный случайный ключ) -
Политика перезапуска:
unless-stopped
Nginx Certbot (Прокси-сервер)¶
-
Образ:
jonasal/nginx-certbot:latest -
Сеть: Режим
host -
Тома:
-
nginx_secrets:/etc/letsencrypt(хранение сертификатов) -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d(пользовательские конфиги) -
Переменные окружения:
CERTBOT_EMAIL=hkadm@hostkey.com -
Политика перезапуска:
unless-stopped
Базы данных¶
Приложение использует файловое хранилище внутри контейнеров для хранения данных TeamSpeak и настроек веб-интерфейса. Данные сохраняются в директориях /opt/teamspeak и /opt/tsi-web.
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо выполнить следующие действия:
-
Обновить образы контейнеров с помощью команды:
-
Перезапустить контейнеры для применения изменений:
Доступные порты для подключения¶
| Порт | Протокол | Назначение |
|---|---|---|
9987 | UDP | Голосовой чат TeamSpeak |
10011, 10022 | TCP | Server Query (управление) |
30033 | TCP | Передача файлов |
41144 | TCP | Передача данных |
80/443 | TCP | Доступ к веб-панели управления через браузер |
Запуск, остановка приложения¶
Управление контейнерами осуществляется через Docker:
-
Остановка всех сервисов:
-
Запуск сервисов: