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

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

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

Глобальные

ИмяОписание
TUNA_CONFIGПуть к конфигурационному файлу
TUNA_LOG_LEVELУровень логирования: debug, info, warn, error, fatal (умолчание "info")
TUNA_LOG_FORMATФормат логирования: text, json (умолчание "text")

Общие

ИмяОписание
TUNA_PORTПорт или адрес назначения (например, 8080 или 10.0.0.10:5432)
TUNA_TOKENТокен для создания туннеля
TUNA_LOCATIONРегион подключения (nl или ru)

Для 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_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 / SSH / TRIGGER туннелей

ИмяОписание
TUNA_TCP_PORTНомер зарезервированного порта или алиас
TUNA_QR_CODEСгенерировать и показать QR-код

Создание и управление сервисами

ИмяОписание
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Промежуток времени выделенный на обнаружение порта

Работа с 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