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

Переменные окружения

Список поддерживаемых переменных среды клиентом 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_KEYAPI-ключ

Для 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