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

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

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

Для успешного развертывания приложения необходимо наличие сервера с операционной системой Ubuntu. Требуется наличие прав суперпользователя (root) для выполнения команд установки и настройки.

Необходимо обеспечить доступность следующих портов в брандмауэре: - 9987/udp — для голосового трафика TeamSpeak. - 10011 — для сервера управления TeamSpeak. - 10022 — для сервера файлов TeamSpeak. - 30033 — для сервера голосового канала TeamSpeak. - 41144 — для сервера голосового канала TeamSpeak. - 80 и 443 — для веб-интерфейса и работы прокси-сервера с SSL.

Требуется наличие зарегистрированного доменного имени (final_domain), которое будет использоваться для доступа к веб-интерфейсу управления.

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

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

  • /opt/teamspeak — каталог для хранения данных сервера TeamSpeak.
  • /opt/tsi-web — каталог для хранения данных веб-интерфейса TS3-Manager.
  • /root/nginx — каталог для конфигурации прокси-сервера и файла compose.yml.
  • /data/nginx/user_conf.d — каталог для пользовательских конфигурационных файлов Nginx.
  • /data/nginx/nginx-certbot.env — файл переменных окружения для контейнера Nginx.
  • /etc/letsencrypt — каталог для хранения SSL-сертификатов (подключается как том nginx_secrets).

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

Развертывание осуществляется через Docker-контейнеры. Устанавливаются следующие компоненты:

  1. Docker Engine: Устанавливается и настраивается среда Docker для запуска контейнеров.
  2. TeamSpeak Server: Запускается контейнер с образом teamspeak:latest.
  3. TS3-Manager: Запускается контейнер с образом joni1802/ts3-manager:v2.2.3.
  4. Nginx с Certbot: Запускается контейнер с образом jonasal/nginx-certbot:latest для обработки HTTPS-трафика и получения сертификатов.

Контейнеры Docker и их запуск

Система использует следующие контейнеры:

Контейнер TeamSpeak

  • Имя: teamspeak
  • Образ: teamspeak:latest
  • Порты:
  • 9987:9987/udp
  • 10011:10011
  • 10022:10022
  • 30033:30033
  • 41144:41144
  • Тома: /opt/teamspeak:/data
  • Переменные окружения: TS3SERVER_LICENSE=accept
  • Сеть: bridge
  • Политика перезапуска: unless-stopped
  • Проверка здоровья: Проверка доступности порта 10022 через telnet.

Контейнер TS3-Manager

  • Имя: ts3-manager
  • Образ: joni1802/ts3-manager:v2.2.3
  • Порты: 8080:8080
  • Тома: /opt/tsi-web:/app/data
  • Переменные окружения:
  • PORT=8080
  • JWT_SECRET (генерируется автоматически)
  • Сеть: bridge
  • Политика перезапуска: unless-stopped

Контейнер Nginx-Certbot

  • Имя: 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
  • Файл переменных: /data/nginx/nginx-certbot.env
  • Политика перезапуска: unless-stopped

Контейнер Nginx запускается с помощью команды docker compose up -d в директории /root/nginx.

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

Для обработки входящего трафика и обеспечения SSL-шифрования используется контейнер nginx-certbot.

Конфигурация прокси размещается в файле /data/nginx/user_conf.d/{final_domain}.conf.

Настройки сервера: - Перенаправление трафика с порта 80 на https. - Слушание порта 443 с SSL. - Использование сертификатов из каталога /etc/letsencrypt/live/{final_domain}/. - Прокси-пересылка запросов к веб-интерфейсу TS3-Manager на адрес http://127.0.0.1:8080.

SSL-сертификаты автоматически запрашиваются через утилиту certbot с использованием метода webroot и пути /var/www/letsencrypt внутри контейнера.

Базы данных

Веб-интерфейс TS3-Manager использует встроенное хранилище данных, которое сохраняется в томе /opt/tsi-web:/app/data. Отдельная база данных не требуется.

Настройки прав

Права доступа к каталогам настроены следующим образом: - /opt/teamspeak — владелец root, группа root, права 0755. - /opt/tsi-web — владелец root, группа root, права 0755. - /root/nginx — владелец root, группа root, права 0755. - /data/nginx/user_conf.d — владелец root, группа root, права 0755. - Конфигурационные файлы Nginx имеют права 0644.

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

Управление контейнером Nginx осуществляется через Docker Compose в директории /root/nginx:

  • Запуск: docker compose up -d
  • Остановка: docker compose down
  • Перезапуск: docker restart nginx-certbot

Управление контейнерами TeamSpeak и TS3-Manager осуществляется через стандартные команды Docker:

  • Запуск: docker start teamspeak и docker start ts3-manager
  • Остановка: docker stop teamspeak и docker stop ts3-manager
  • Перезапуск: docker restart teamspeak и docker restart ts3-manager

Обновление образов контейнеров выполняется командой docker pull для соответствующих образов перед перезапуском.

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