Список поддерживаемых переменных среды клиентом tuna.
Глобальные
| Имя | Описание |
|---|
| TUNA_CONFIG | Путь к конфигурационному файлу |
| TUNA_LOG | Путь к файлу журнала: /file/to/file.log, stdout, stderr" (умолчание "stdout") |
| TUNA_LOG_LEVEL | Уровень логирования: debug, info, warn, error, fatal (умолчание "info") |
| TUNA_LOG_FORMAT | Формат логирования: text, json (умолчание "text") |
| TUNA_TUI | Включить (1) или выключить (0) интерфейс в терминале |
| TUNA_NO_PROMPT | Не задавать вопросов, например подтверждения удаления: команда без --yes завершится ошибкой, как при запуске без терминала |
Общие
| Имя | Описание |
|---|
| TUNA_PORT | Порт или адрес назначения (например, 8080 или 10.0.0.10:5432) |
| TUNA_TOKEN | Токен для создания туннеля |
| TUNA_LOCATION | Регион подключения (nl или ru) |
| TUNA_API_KEY | API-ключ |
Для HTTP туннелей
| Имя | Описание |
|---|
| TUNA_BASIC_AUTH | Добавить базовую аутентификацию (например, user:pass) |
| TUNA_CIDR_ALLOW | Отклонять соединения, которые не соответствуют заданным CIDR |
| TUNA_CIDR_DENY | Отклонить соединения, соответствующие заданным CIDR |
| TUNA_CORS | Включить добавление CORS заголовков и автоматическую обработку OPTIONS запросов |
| TUNA_DOMAIN | Зарезервированный домен |
| TUNA_FILE_SERVER | Путь к каталогу для публикации файлов по http |
| TUNA_FILE_SERVER_SPA | Путь к каталогу для публикации SPA сайта |
| TUNA_HTTPS_REDIRECT | Перенаправлять запросы на https (true или false) |
| TUNA_INSPECT | Включить или отключить инспектор запросов (true или false) |
| TUNA_INSPECT_ADDR | Задать адрес для инспектора запросов |
| TUNA_KEY_AUTH | Добавить ключ аутентификации, переданный в заголовке X-Token |
| TUNA_POLICY_FILE | Путь файлу конфигурации с правилами (по умолчанию .tuna.yml) |
| TUNA_POLICY_URL | Ссылка на файл с правилами в формате YAML или JSON (только https) |
| TUNA_QR_CODE | Сгенерировать и показать QR-код |
| TUNA_RATE_LIMIT | Ограничьте количество запросов к вашему приложению (например, 20 для 20 запросов/сек) |
| TUNA_REQUEST_HEADER | Добавление заголовков для передачи локальному сервису (например, host:tuna.am) |
| TUNA_RESPONSE_HEADER | Добавление заголовков для передачи клиенту (например, env:test) |
| TUNA_SUBDOMAIN | Зарезервированный поддомен |
| TUNA_TLS_SKIP_VERIFY | Игнорировать проверку TLS |
| TUNA_VERIFY_WEBHOOK | Проверить, подписаны ли вебхуки этим поставщиком (например, gitlab) |
| TUNA_VERIFY_WEBHOOK_SECRET | Секрет, используемый провайдером для подписи вебхуков, если таковые имеются |
| TUNA_WEBDAV | Путь к каталогу для публикации файлов по WebDAV |
Для TCP туннелей
| Имя | Описание |
|---|
| TUNA_TCP_PORT | Номер зарезервированного порта или алиас |
| TUNA_QR_CODE | Сгенерировать и показать QR-код |
| TUNA_CIDR_ALLOW | Отклонять соединения, которые не соответствуют заданным CIDR |
| TUNA_CIDR_DENY | Отклонить соединения, соответствующие заданным CIDR |
| TUNA_PROXY_PROTOCOL | Включить PROXY Protocol (1 или 2) |
Для SSH туннелей
| Имя | Описание |
|---|
| TUNA_TCP_PORT | Номер зарезервированного порта или алиас |
| TUNA_SSH_AUTH | Задать статические username/password |
| TUNA_SSH_PASSWORD_AUTH | Включить или выключить аутентификацию с помощью логин/пароль |
| TUNA_RECORD_SESSION | Запись SSH сессий |
| TUNA_CIDR_ALLOW | Отклонять соединения, которые не соответствуют заданным CIDR |
| TUNA_CIDR_DENY | Отклонить соединения, соответствующие заданным CIDR |
Для TRIGGER туннелей
| Имя | Описание |
|---|
| TUNA_TCP_PORT | Номер зарезервированного порта или алиас |
| TUNA_TRIGGER_SMTP_USERNAME | Имя пользователя для подключения по SMTP |
| TUNA_TRIGGER_SMTP_PASSWORD | Пароль пользователя для подключения по SMTP |
| TUNA_TRIGGER_SMTP_LISTEN_ADDRESS | Локальный адрес SMTP-сервера триггера (умолчание "127.0.0.1:1025") |
| TUNA_TRIGGER_WEBHOOK_SECRET | Секрет, который будет проверяться со значением заголовка X-Webhook-Secret |
Для Postgres/Redis туннелей
| Имя | Описание |
|---|
| TUNA_TCP_PORT | Номер зарезервированного порта или алиас |
| TUNA_QR_CODE | Сгенерировать и показать QR-код |
| TUNA_INSPECT | Включить или отключить инспектор запросов (true или false) |
| TUNA_INSPECT_ADDR | Задать адрес для инспектора запросов |
| TUNA_CIDR_ALLOW | Отклонять соединения, которые не соответствуют заданным CIDR |
| TUNA_CIDR_DENY | Отклонить соединения, соответствующие заданным CIDR |
Для Kubernetes туннелей
| Имя | Описание |
|---|
| KUBECONFIG | Путь к kubeconfig (один файл) |
| TUNA_K8S_CONTEXT | Контекст kubeconfig (по умолчанию current-context) |
| TUNA_K8S_SERVICE_ACCOUNT | Сервисный аккаунт для гостя ([namespace/]name) |
| TUNA_K8S_NAMESPACE | Ограничить доступ одним namespace |
| TUNA_K8S_PRESET | Пресет ограничений: view, observer, debug, open |
| TUNA_K8S_READ_ONLY | Разрешить только чтение |
| TUNA_K8S_NO_DELETE | Запретить удаление ресурсов |
| TUNA_K8S_DENY_RESOURCE | Запрещённые ресурсы (например, secrets,configmaps) |
| TUNA_K8S_DENY_SUBRESOURCE | Запрещённые субресурсы (exec, attach, portforward, log, proxy) |
| TUNA_K8S_TTL | Срок действия доступа (например, 4h, 0 — бессрочно) |
| TUNA_K8S_DOWNLOAD_LIMIT | Сколько раз можно скачать kubeconfig (0 — без лимита) |
Для публикации 1С
Работают также переменные HTTP туннелей: доступ, адрес, инспектор.
| Имя | Описание |
|---|
| TUNA_1C_HOME | Каталог установки 1С:Предприятие |
| TUNA_1C_PLATFORM | Разрядность платформы 1С: x64 или x86 |
| TUNA_1C_PORT | Локальный порт веб-сервера (по умолчанию случайный свободный) |
| TUNA_1C_PUBLISH_DIR | Каталог с файлами публикации |
Создание и управление сервисами
| Имя | Описание |
|---|
| TUNA_SERVICE_NAME | Имя сервиса |
| TUNA_SERVICE_INSTALL_USER | Пользователь от под имени которого будет запускаться сервис |
| TUNA_SERVICE_INSTALL_PASSWORD | Пароль при указании иного пользователя (только Windows) |
Множественный запуск туннелей
| Имя | Описание |
|---|
| TUNA_START_TUNNELS_FILE | Путь файлу конфигурации с туннелями (по умолчанию .tuna.yml) |
| TUNA_START | Имя туннеля для запуска |
| TUNA_START_TAGS | Теги туннелей для запуска |
| TUNA_START_ALL | Запуск всех туннелей |
Обнаружение портов
| Имя | Описание |
|---|
| TUNA_DETECT_SECONDS | Промежуток времени выделенный на обнаружение порта |
Секреты
| Имя | Описание |
|---|
| TUNA_SECRETS_SCOPE | Конфигурация каталога для области действия (по умолчанию .) |
| TUNA_SECRETS_PROJECT | Алиас проекта |
| TUNA_SECRETS_CONFIG | Алиас конфигурации |
| TUNA_SECRETS_FORMAT | Формат вывода (json, yaml, env, env-no-quotes или docker) (по умолчанию json) |
| TUNA_SECRETS_NO_FILE | Печатать на stdout (по умолчанию false) |
| TUNA_SECRETS_WATCH | Автоматически перезапускать процесс при изменении секретов (по умолчанию false) |
| TUNA_SECRETS_NO_INTERACTIVE | Не спрашивать проект и конфигурацию в tuna secrets setup, а завершаться ошибкой (по умолчанию false) |
| TUNA_SECRETS_FALLBACK_PASSPHRASE | Парольная фраза для файла офлайн-режима tuna secrets run |
| TUNA_SECRETS_MOUNT_PATH | Путь к секретам при tuna secrets run --mount. Переменную устанавливает сам клиент для дочернего процесса |
Работа с direnv
direnv — это менеджер переменных среды для терминала, он позволяет автоматически загружать и выгружать переменные среды в зависимости от текущего каталога – это позволяет иметь переменные среды, специфичные для каждого проекта, над которым вы работаете.
Перед каждым приглашением direnv проверяет наличие файла .envrc в текущем и родительском каталогах и если файл существует, он загружается в подшаблон bash, и все экспортированные переменные затем захватываются direnv, а затем становятся доступными для оболочки.
Перед началом использования direnv, его необходимо установить, инструкция по установке доступна в официальной документации, после этого в каталоге проекта нужно создать файл .envrc с настройками tuna, например:
export TUNA_PORT=8080
export TUNA_SUBDOMAIN=my-project
При переходе в каталог проекта и вызове команды tuna http у вас будет создаваться туннель с учетом настроек из файла .envrc:
% tuna http
INFO[13:00:00] Welcome to Tuna
INFO[13:00:00] Account: test (Paid till 05.04.2024)
INFO[13:00:00] Web Interface: http://127.0.0.1:4040
INFO[13:00:00] Forwarding https://my-project.ru.tuna.am -> 127.0.0.1:8080