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

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

примечание

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

```shell
tuna start --help

```

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

Вы можете описать все туннели в глобальном [конфигурационном файле](https://tuna.am/docs/guides/config-file.md) или локальном (только для секции **tunnels**). Если текущем каталоге найден локальный файл по имени `.tuna.yml`, то он переопределяет секцию `tunnels` из глобального. Так вы можете создать `.tuna.yml` в корне репозитория и это сразу будет работать для всех разработчиков в команде. Путь к локальному файлу можно переопределить с помощью флага `--tunnels-file` или переменной окружения `TUNA_START_TUNNELS_FILE` к команде `tuna start`.

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

```

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

```yaml
---
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

```

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

```yaml
web:
  commandLine: tuna http localhost:5173 --subdomain=web
  tags: [frontend, ui]

```

1. `web` - имя туннеля, должно быть уникальным в списке всех туннелей
2. `commandLine` - команда для создания туннеля
3. `tags` - необязательное поле, может содержать строку или список строк. Тегами можно определять запуск части туннелей.

## Запуск

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

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

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

```shell
tuna start api

```

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

```shell
tuna start api postgres

```

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

```shell
export TUNA_START="api"
tuna start

```

### По тегу

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

```shell
tuna start --tags=frontend

```

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

```shell
tuna start --tags=frontend,backend

```

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

```shell
export TUNA_START_TAGS="frontend"
tuna start

```

### Все сразу

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

```shell
tuna start --all

```

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

```shell
export TUNA_START_ALL=true
tuna start

```
