Миграция с 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 и не требует его остановки.
Практическая последовательность:
- Разверните TS6 на отдельном сервере или отдельных портах того же хостинга - TS3 продолжает принимать основной трафик сообщества.
- Воссоздайте базовую структуру (топ-уровень каналов, ключевые группы) на TS6 и пригласите тестовую группу активных участников попробовать новый клиент и сервер.
- Соберите обратную связь минимум за 2-4 недели: стабильность подключения, поведение прав, совместимость с нужными вам ботами.
- Отслеживайте changelog бета-сборок TS6 в это время - если между релизами часто меняется что-то критичное для вас (права, файловый транспорт), не спешите с полным переключением.
- Переключайте основной трафик, только когда TS6-сервер отработал нужный вам срок без критичных инцидентов, и все нужные боты уже переписаны и протестированы.
- Не удаляйте 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-сервер не отработает стабильно нужный вам срок (например, месяц без критичных проблем). Сохраните экспорт структуры каналов и групп, домен/адрес, на который смотрит сообщество, переключайте не раньше, чем убедитесь в стабильности.