Pterohost docs

Миграция с TeamSpeak 3 на TeamSpeak 6: план, чеклист, риски

Что переносится и что нет при миграции с TeamSpeak 3 на TeamSpeak 6: инвентаризация сервера, параллельная работа, перенос каналов и групп, судьба telnet-ботов, лицензия и план отката.

Официального инструмента миграции с TeamSpeak 3 на TeamSpeak 6 не существует - разработчики прямо говорят, что сервер всё ещё beta, и лицензии, база данных и структура каналов между версиями несовместимы напрямую. Это не значит, что переезд невозможен - значит, что его нужно делать осознанно, руками или своим скриптом, и держать план отката на случай, если новая версия подведёт. В этой статье - что переносится и что нет, как провести инвентаризацию текущего TS3-сервера, стратегия параллельной работы двух серверов, перенос каналов и групп, судьба telnet-ботов и итоговый чеклист.

Что переносится, а что нет

Перед стартом важно честно понять границы возможного - в бете многое придётся воссоздавать вручную, а не копировать.

КомпонентПереносится лиКак переносить
Структура каналовНет автоматическиВручную через клиент или скриптом поверх REST API
Группы прав (серверные, канальные)Нет автоматическиПересоздать вручную, скопировав логику прав
Индивидуальные права клиентовНетПересоздать по мере возвращения пользователей на новый сервер
Иконки каналов и аватарыНет напрямуюПерезалить файлы вручную или через API
Лицензионный ключНетTS6 использует отдельную бесплатную бета-лицензию на 32 слота
База данных сервера (SQLite/MySQL)НетФормат базы TS6 не совместим с базой TS3 напрямую
Боты на telnet-ServerQueryНет без переписыванияПереписать под SSH-query или HTTP/HTTPS web-query TS6
Пользовательские identity (TS3 unique ID)Нет между версиями сервераПользователи создают новую идентичность для TS6-клиента

Единственное, что переносится буквально бесплатно - это опыт и знание вашей структуры: если вы держите документ или экспорт списка каналов и групп с TS3, применить ту же логику на TS6 руками намного быстрее, чем восстанавливать её по памяти.

Инвентаризация текущего сервера TS3

Прежде чем переносить что-либо, зафиксируйте текущее состояние - без этого легко забыть половину настроенных за годы мелочей.

Каналы и их параметры

Выгрузите список каналов с иерархией, лимитами на слоты, паролями, кодеком и битрейтом. Через ServerQuery это делается командой channellist с флагами (например, -flags -limits -icon), подробности выполнения запросов - в статье ServerQuery TeamSpeak 3. Зафиксируйте отдельно структуру вложенности - при ручном восстановлении легко перепутать порядок и родительские каналы у крупного дерева.

Группы и права

Выгрузите список серверных и канальных групп командой servergrouplist / channelgrouplist, а для каждой группы - назначенные права (servergrouppermlist). Права - самая трудоёмкая часть инвентаризации: у активного сервера с историей их обычно десятки, с тонкими правками под конкретные роли модераторов. Подробный разбор системы прав TS3 - в статье группы и права TeamSpeak 3.

Иконки, аватары, файлы

Иконки каналов и групп хранятся как файлы, привязанные к CRC-хешу в базе. Скачайте их через файловый транспорт TS3 (порт 30033) или из директории данных сервера напрямую, если у вас есть доступ к файловой системе - без этого шага после миграции все кастомные иконки превратятся в дефолтные.

Боты и автоматизация

Составьте список всех ботов и скриптов, подключающихся к серверу: музыкальные боты, боты модерации, боты статистики, интеграции с Discord. Для каждого зафиксируйте, на чём он написан и к какому транспорту подключается - это станет отдельным блоком работы при переезде, разобранным ниже.

Pterohost - переносите голосовую инфраструктуру без даунтайма: держите TS3 и TS6 серверы параллельно на одном хостинге. Промокод 4START даёт -20% на первый заказ. Арендовать серверы TeamSpeak

Стратегия параллельной работы

Самый безопасный путь - не выключать TS3 сервер, а поднять TS6 рядом и держать оба живыми какое-то время. Установка нового сервера подробно описана в статье установка TeamSpeak 6 - процесс отдельный от TS3 и не требует его остановки.

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

  1. Разверните TS6 на отдельном сервере или отдельных портах того же хостинга - TS3 продолжает принимать основной трафик сообщества.
  2. Воссоздайте базовую структуру (топ-уровень каналов, ключевые группы) на TS6 и пригласите тестовую группу активных участников попробовать новый клиент и сервер.
  3. Соберите обратную связь минимум за 2-4 недели: стабильность подключения, поведение прав, совместимость с нужными вам ботами.
  4. Отслеживайте changelog бета-сборок TS6 в это время - если между релизами часто меняется что-то критичное для вас (права, файловый транспорт), не спешите с полным переключением.
  5. Переключайте основной трафик, только когда TS6-сервер отработал нужный вам срок без критичных инцидентов, и все нужные боты уже переписаны и протестированы.
  6. Не удаляйте TS3-сервер сразу - держите его в резерве на случай отката, пока не пройдёт согласованный период стабильной работы TS6.

Дополнительный плюс параллельной схемы: TS6-клиент умеет подключаться и к TS3-серверам, так что часть пользователей может пользоваться новым интерфейсом ещё до полного переезда серверной части - это снижает субъективное ощущение “два разных мессенджера” на переходный период.

Перенос структуры каналов и групп

Для небольшого сервера (десятки каналов) перенос руками через клиент - разумный вариант: создать дерево каналов заново, скопировать названия, лимиты и коды доступа, глядя в инвентаризационную выгрузку из предыдущего раздела.

Для крупного сервера с сотнями каналов и десятками кастомных групп ручной перенос неоправданно долгий и подвержен ошибкам. Здесь оправдан свой скрипт поверх REST API TS6: он читает экспорт структуры TS3 (например, JSON, который вы заранее сформировали из вывода ServerQuery) и последовательно создаёт каналы и группы через HTTP/HTTPS web-query нового сервера. Подробности работы с REST API - в статье REST API TeamSpeak 6. Учтите, что схема API TS6 ещё меняется между бета-сборками - пишите такой скрипт с расчётом на то, что часть вызовов, возможно, придётся поправить после обновления сервера.

Права лучше переносить не построчным копированием ID (они не гарантированно совпадают между версиями), а через пересборку по смыслу: для каждой роли (модератор, VIP, DJ) заново определите нужный набор прав на TS6, сверяясь со своей инвентаризацией TS3, а не пытаясь автоматически замапить численные идентификаторы прав между версиями.

Судьба ботов на telnet-ServerQuery

Это самая трудозатратная часть миграции для активных сообществ. Боты, написанные под сырой telnet-протокол TS3 ServerQuery (включая популярные библиотеки на Node.js, Python, PHP, C#), не подключатся к TS6 без переписывания транспортного слоя - протокол на уровне сокета другой, telnet в TS6 отсутствует в принципе.

Что нужно сделать с каждым ботом:

  • Определить, какой транспорт TS6 использовать - SSH-query как более прямой аналог интерактивной telnet-сессии, или HTTP/HTTPS web-query, если бот и так построен вокруг HTTP-клиента.
  • Заменить аутентификацию - вместо пароля serveradmin перейти на API-ключ с ограниченным scope, подходящим задаче бота (подробности в статье про REST API TeamSpeak 6).
  • Проверить набор команд, которые использует бот - большинство команд ServerQuery концептуально сохранились, но стоит свериться с документацией конкретной бета-сборки, так как payload и структура ответов местами отличаются.
  • Учесть отсутствие поллинга через webhooks, если бот раньше держал notify-подписку в открытой сессии - на TS6 для этого может быть удобнее использовать outbound webhooks вместо постоянного соединения.

Для многих небольших сообществ проще не переписывать старого бота, а найти или написать его TS6-аналог с нуля под новую архитектуру - экосистема готовых решений под TS6 пока значительно меньше, чем под TS3, так что будьте готовы к собственной разработке чаще, чем на TS3.

Файлы и опциональный S3

Иконки, аватары и загруженные файлы на TS3 хранятся только локально на диске сервера. TS6 добавляет опциональное хранение файлов во внешнем S3-совместимом хранилище - использовать его не обязательно, по умолчанию файлы так же лежат на диске нового сервера. Для миграции это означает: скачайте файлы со старого TS3-сервера через файловый транспорт (порт 30033) и залейте их на новый сервер тем же способом или через настроенный S3, если решили его использовать. Автоматического переноса файлов между серверами нет - это отдельный шаг, который легко забыть в общем плане.

Pterohost - параллельный хостинг TS3 и TS6 с NVMe и автобэкапами, безопасный переход без риска потерять текущее сообщество. Промокод 4START даёт -20% на первый заказ. Заказать хостинг TeamSpeak

Лицензия и слоты при переезде

TS3 и TS6 используют раздельные системы лицензирования - ключ от TS3 не активируется на TS6. На TS6 в бета-статусе доступна только бесплатная лицензия на 32 слота, с автоматическим продлением примерно раз в два месяца - для сообществ с TS3-лицензией на большее число слотов это значит, что при переезде на TS6 вы временно ограничены 32 слотами, пока TeamSpeak не откроет продажу крупных коммерческих лицензий для шестой версии. Планируйте переезд с учётом этого лимита - если у вас сейчас 64 или 100 слотов на TS3, полный переход на TS6 прямо сейчас технически невозможен без превышения лимита.

Коммуникация с сообществом

Технически безупречная миграция всё равно провалится, если участники сообщества не поймут, что происходит. Минимальный план коммуникации:

  • Объявите о планах заранее, объяснив, зачем нужен переход (новый клиент, REST API для интеграций, и т.д.), и укажите, что TS3-сервер продолжит работать во время тестового периода.
  • Опубликуйте инструкцию по скачиванию TS6-клиента и подключению к тестовому серверу - многие пользователи не следят за новостями TeamSpeak и не знают о существовании шестой версии.
  • Соберите обратную связь через отдельный текстовый канал или форму - реальные жалобы на баги беты полезнее, чем молчаливое недовольство.
  • Заранее сообщите дату предполагаемого полного переключения и держите её мягкой (готовы сдвинуть), а не жёстким дедлайном - беты не подчиняются вашему расписанию.

Чеклист миграции

ШагЧто сделатьГотово
1Выгрузить список каналов, иерархию, лимиты, коды доступа
2Выгрузить список групп и назначенные им права
3Скачать иконки каналов, аватары, файлы с TS3
4Составить список ботов и их транспортов
5Развернуть TS6-сервер параллельно TS3, не отключая старый
6Воссоздать структуру каналов и групп на TS6
7Переписать ботов под SSH-query/HTTP web-query и API-ключи
8Перезалить файлы (локально или в S3) на новый сервер
9Провести тестовый период с частью сообщества (2-4 недели)
10Проверить лимит слотов новой бета-лицензии TS6 (32) против текущей загрузки
11Сообщить сообществу план и сроки, собрать обратную связь
12Переключить основной трафик, оставив TS3 в резерве для отката
13Удалить/законсервировать TS3-сервер только после подтверждённой стабильности TS6

Часто задаваемые вопросы

Есть ли официальный инструмент миграции с TeamSpeak 3 на TeamSpeak 6?

Нет. На момент бета-статуса TeamSpeak 6 официального пути автоматического переноса каналов, групп прав, файлов или лицензии с TeamSpeak 3 не существует. Структуру сервера приходится воссоздавать вручную через клиент или скриптом поверх REST API/ServerQuery.

Что точно не переносится при миграции с TS3 на TS6?

Лицензионный ключ TeamSpeak 3 не работает на TeamSpeak 6 - это отдельная система лицензирования. Также не переносятся автоматически: боты и скрипты, завязанные на telnet-ServerQuery (их нужно переписывать под новые транспорты), и напрямую база данных сервера - структуру придётся воссоздавать, а не копировать файл базы между версиями.

Стоит ли переносить действующее сообщество на TeamSpeak 6 прямо сейчас?

Только если вы готовы к параллельной работе двух серверов, ручному переносу структуры и возможным изменениям в API между бета-сборками. Для крупных сообществ с отлаженной инфраструктурой ботов разумнее держать TS3 основным сервером и тестировать TS6 параллельно, пока он не выйдет из беты.

Что делать с ботами, которые работают через telnet-ServerQuery TS3, при переходе на TS6?

Их нужно переписать под новые транспорты TeamSpeak 6 - SSH-query или HTTP/HTTPS web-query - и, желательно, под API-ключи с ограниченным scope вместо пароля serveradmin. Прямой совместимости у telnet-ориентированного кода с TS6 нет: сырой протокол убран.

Как подготовить план отката при миграции на TeamSpeak 6?

Держите TeamSpeak 3 сервер работающим и не удаляйте его до тех пор, пока новый TS6-сервер не отработает стабильно нужный вам срок (например, месяц без критичных проблем). Сохраните экспорт структуры каналов и групп, домен/адрес, на который смотрит сообщество, переключайте не раньше, чем убедитесь в стабильности.