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

Дополнительные слаги (мультислаговость)

Один аккаунт — несколько независимых туннелей. Каждый дополнительный слаг работает как отдельное устройство со своим адресом и токеном.


Что такое дополнительный слаг?

По умолчанию у каждого пользователя один слаг — например eskimos. Он же адрес туннеля: eskimos.dix.su.

Дополнительные слаги позволяют запускать несколько туннелей под одним аккаунтом. Например:

Слаг Что слушает
eskimos (основной) Django-магазин :8000
eskimos-git Forgejo :3000
eskimos-dev Тестовая среда :5000

Каждый слаг — независимый device_client со своим токеном, своим сервисом и своими TCP-портами.


Правила именования

Дополнительный слаг обязан начинаться с основного слага, за которым следует дефис и произвольный суффикс:

<основной_слаг>-<суффикс>

Примеры при основном слаге eskimos:

✅ Допустимо ❌ Недопустимо
eskimos-git git-eskimos (не начинается с основного)
eskimos-shop eskimos_shop (нижнее подчёркивание)
eskimos-dev2 eskimos- (нет суффикса)
eskimos-123 eskimos (это уже основной слаг)

Суффикс — только строчные буквы a-z, цифры 0-9 и дефис -. Не может начинаться или заканчиваться дефисом. Максимальная длина слага — 63 символа.


Лимиты по тарифу

Тариф Дополнительных слагов
SIMPLE / VIP 0 (недоступно)
PRO до 2
PERS / GLAVA без ограничений

Как создать дополнительный слаг

  1. Откройте Личный кабинет → Туннель.
  2. Прокрутите до карточки «Дополнительные слаги».
  3. В поле «Слаг» введите желаемый адрес (например eskimos-git).
  4. Укажите понятное название (необязательно): Forgejo.
  5. Нажмите Создать.

Сразу после создания вы увидите токен нового слага — скопируйте его.


Как запустить device_client для дополнительного слага

Используйте отдельный .env с токеном нового слага:

DIXSU_SLUG=eskimos-git
DIXSU_TOKEN=<токен из личного кабинета>
DIXSU_PORT=3000           # порт вашего сервиса

Запустите device_client как обычно — он зарегистрируется как eskimos-git.dix.su.

Docker-стек:

git clone https://gitlab.com/dixsu/market/dixsu-test
cp .env.example .env
# Заполните DIXSU_SLUG=eskimos-git, DIXSU_TOKEN=...
docker compose up -d

Удаление

Нажмите «Удалить» напротив нужного слага в карточке. Основной слаг нельзя удалить, пока существуют дополнительные.

При удалении device_client с этим слагом немедленно теряет соединение — перезапускать его не нужно, просто остановите сервис.


Технические детали

  • Каждый дополнительный слаг хранится в таблице user_slugs со своим token.
  • Аутентификация в прокси (dixu_proxy) проверяет сначала users, затем user_slugs.
  • DeviceRegistry уже поддерживает произвольное количество slug → channel_pid — изменений в прокси не требуется.
  • TCP-порты (SSH :2222, RDP :3389 и т.д.) работают для каждого слага независимо.