### 🧩Шаг 1: Обновляем систему
```
sudo apt update && sudo apt upgrade -y
```
- `apt update` — обновляет список доступных пакетов.
- `apt upgrade -y` — устанавливает последние версии пакетов, `-y` автоматически подтверждает установку.
### 🧰 Шаг 2: Создание пользователя для сервера
```
sudo adduser --disabled-login teamspeak
```
- `--disabled-login` — запрещает вход в систему для безопасности.
- `teamspeak` — имя пользователя, можно изменить по желанию.
### 📦 Шаг 3: Установка зависимостей
```
sudo apt install wget tar bzip2 libglib2.0-0 libstdc++6 -y
```
- `wget` — для загрузки файлов.
- `tar`, `bzip2` — для распаковки архива с сервером.
- `libglib2.0-0`, `libstdc++6` — системные библиотеки, нужные TS.
### 📥Шаг 4: Загрузка TeamSpeak 3 сервера
```
cd /tmp

wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2
```
### 📂 Шаг 5: Распаковка и установка
```
tar -xvjf teamspeak3-server_linux_amd64-3.13.7.tar.bz2

sudo mv teamspeak3-server_linux_amd64 /opt/teamspeak
```
- `tar -xvjf` — распаковка архива:
- `x` — извлечь, `v` — показать процесс, `j` — bzip2, `f` — файл.
- `mv` — перемещаем сервер в `/opt/teamspeak`.
### 🔐 Шаг 6: Назначаем владельца
```
sudo chown -R teamspeak:teamspeak /opt/teamspeak
```
`chown` — смена владельца папки на пользователя `teamspeak`.
### 📜 Шаг 7: Принятие лицензии
```
sudo touch /opt/teamspeak/.ts3server_license_accepted
```
`touch` — создает пустой файл. Этот файл нужен для запуска без GUI-подтверждения лицензии.
### ⚙️ Шаг 8: Создание systemd сервиса

Создаем файл юнита для запуска сервера как службы:
```
sudo nano /etc/systemd/system/teamspeak.service
```
Вставляем данные:
```
[Unit]
Description=TeamSpeak 3 Server
After=network.target

[Service]
WorkingDirectory=/opt/teamspeak
User=teamspeak
Group=teamspeak
ExecStart=/opt/teamspeak/ts3server_minimal_runscript.sh
Restart=always
RestartSec=15
LimitNOFILE=10000

[Install]
WantedBy=multi-user.target
```
Сохраняем `Ctrl+O`, выходим `Ctrl+X`.
### 🚀 Шаг 9: Запуск сервера
```
sudo systemctl daemon-reexec

sudo systemctl daemon-reload

sudo systemctl enable teamspeak --now
```
- `daemon-reexec` — перезапускает systemd (на всякий случай).
- `daemon-reload` — загружает новые юниты.
- `enable --now` — включает автозапуск и запускает прямо сейчас.
### 🔍 Шаг 10: Проверка работы
```
sudo journalctl -u teamspeak -f
```
Показывает логи сервиса в реальном времени.  
##### *`Важно:` в первом запуске появится **admin token**, который нужно сохранить для входа с клиента.*
### 🔓 Шаг 11: Открытие портов (если используется UFW)
```
sudo ufw allow 9987/udp    # Голосовой порт
sudo ufw allow 10011/tcp   # ServerQuery
sudo ufw allow 30033/tcp   # File Transfer
sudo ufw reload
```
Если используется `ufw` (брандмауэр Ubuntu):
### 🔹 Шаг 11: Привязка домена к серверу

Перейди в панель управления DNS у твоего регистратора домена (например, reg.ru, Cloudflare, Timeweb и т.д.) и создай:
```
|Тип| |Имя|     |Значение|

|A| teamspeak|  `0.0.0.0` (**твой белый IP**)|
```
Это создаст поддомен `teamspeak.stitch505.su`, указывающий на твой сервер.
### 🔎 11.2 Проверка доступности поддомена
```
ping teamspeak.stitch505.su
```
### 🔸 Шаг 12 (опционально): Настройка SRV-записи (для подключения по основному домену)

#### **🔧 Что такое SRV-запись?**
- **тип сервиса** (например, TeamSpeak, SIP, Minecraft и т.д.),
- **протокол** (обычно UDP или TCP),
- **имя хоста**, где находится сервис,
- **порт**, на котором он работает.

###### **SRV-запись (Service Record)** указывает:

| `Поле`       | `Значение`              | `Пояснение`                                                          |
| ------------ | ----------------------- | -------------------------------------------------------------------- |
| **Name**     | ts3._udp.stitch505.su   | `_ts3._udp` = сервис TeamSpeak по UDP, далее основной домен          |
| **Priority** | 0                       | Приоритет записи, если их несколько. Меньше = важнее.                |
| **Weight**   | 5                       | Вес между SRV с одинаковым приоритетом. 5 — обычное значение.        |
| **Port**<br> | 9987                    | Стандартный порт TeamSpeak 3.\|                                      |
| **Target**   | teamspeak.stitch505.su. | Имя сервера, куда перенаправлять. Точка в конце — обязательна в DNS. |
>[!Danger] ❗ **ВАЖНО**:
>- **"Name" — это не просто `_ts3._udp`**, а полный путь вида: `_ts3._udp.stitch505.su`
>- **"Target" должен оканчиваться на точку**, чтобы DNS понимал, что это **FQDN** (полное доменное имя), а не поддомен текущего имени.



# Если ты просрал ключ админа для первого входа:

>[!failure] ### УДАЛЯЙ ЛИНУКС ЭТО НЕ ТВОЁ

>[!Success] либо Вводим команду:
```
sudo journalctl -u teamspeak -b -n 100 | grep token
```
>[!failure] Копируем данные  после `token=` и вставляем в ТС

