Переменные окружения
Список поддерживаемых переменных среды клиентом 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_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_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-код |
Для SSH туннелей
| Имя | Описание |
|---|---|
| TUNA_TCP_PORT | Номер зарезервированного порта или алиас |
| TUNA_SSH_AUTH | Задать статические username/password |
| TUNA_SSH_PASSWORD_AUTH | Включить или выключить аутентификацию с помощью логин/пароль |
| TUNA_RECORD_SESSION | Запись SSH сессий |
Для TRIGGER туннелей
| Имя | Описание |
|---|---|
| TUNA_TCP_PORT | Номер зарезервированного порта или алиас |
| TUNA_TRIGGER_SMTP_USERNAME | Имя пользователя для подключения по SMTP |
| TUNA_TRIGGER_SMTP_PASSWORD | Пароль пользователя для подключения по SMTP |
| TUNA_TRIGGER_WEBHOOK_SECRET | Секрет, который будет проверяться со значением заголовка X-Webhook-Secret |
Для Postgres/Redis туннелей
| Имя | Описание |
|---|---|
| TUNA_TCP_PORT | Номер зарезервированного порта или алиас |
| TUNA_QR_CODE | Сгенерировать и показать QR-код |
| TUNA_INSPECT | Включить или отключить инспектор запросов (true или false) |
| TUNA_INSPECT_ADDR | Задать адрес для инспектора запросов |
Создание и управление сервисами
| Имя | Описание |
|---|---|
| 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) (по умолчанию json) |
| TUNA_SECRETS_NO_FILE | Печатать на stdout (по умолчанию false) |
| TUNA_SECRETS_WATCH | Автоматически перезапускать процесс при изменении секретов (по умолчанию false) |
Работа с 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