Перейти к основному содержимому

Множественный запуск туннелей

В проектах где нужно опубликовать несколько сервисов, может потребоваться запустить сразу несколько туннелей.

примечание

Все актуальные флаги, подсказки и примеры можно посмотреть вызвав справку:

tuna start --help

Конфигурация

Вы можете описать все туннели в глобальном конфигурационном файле или локальном (только для секции tunnels). Если текущем каталоге найден локальный файл по имени .tuna.yml, то он переопределяет секцию tunnels из глобального. Так вы можете создать .tuna.yml в корне репозитория и это сразу будет работать для всех разработчиков в команде. Путь к локальному файлу можно переопределить с помощью флага --tunnels-file или переменной окружения TUNA_START_TUNNELS_FILE к команде tuna start.

tuna start --tunnels-file=/ваш/путь/.tuna.yml web

Пример конфигурации, где описан запуск четырех туннелей:

---
tunnels:
web:
commandLine: tuna http localhost:5173 --subdomain=web
tags: [frontend, ui]
api:
commandLine: tuna http 8080 --subdomain=api
tags: [backend, api]
postgres:
commandLine: tuna tcp 5432 --port=postgres
tags: backend
redis:
commandLine: tuna tcp 6379 --port=redis
tags: frontend

Из чего состоит каждый сервис на примере первого:

web:
commandLine: tuna http localhost:5173 --subdomain=web
tags: [frontend, ui]
  1. web - имя туннеля, должно быть уникальным в списке всех туннелей
  2. commandLine - команда для создания туннеля
  3. tags - необязательное поле, может содержать строку или список строк. Тегами можно определять запуск части туннелей.

Запуск

За запуск отвечает команда tuna start, можно разделять запуск в зависимости от потребностей.

По имени сервиса

Запустить туннель только для сервиса api:

tuna start api

Запустить туннель только для api и postgres:

tuna start api postgres

Передать имя можно и в переменной окружения TUNA_START:

export TUNA_START="api"
tuna start

По тегу

Запустить все туннели с тегом frontend:

tuna start --tags=frontend

Запустить все туннели с тегом frontend или backend:

tuna start --tags=frontend,backend

Передать tags можно и в переменной окружения TUNA_START_TAGS:

export TUNA_START_TAGS="frontend"
tuna start

Все сразу

Запустить все описанные туннели:

tuna start --all

Или с переменной окружения TUNA_START_ALL:

export TUNA_START_ALL=true
tuna start