Tuna - это консольная утилита для создания туннелей и публикации запущенных локально сайтов и приложений в интернет.
Проще говоря, Tuna - это аналог Ngrok, только с серверами в России и возможностью оплаты рублями. Но давайте я лучше покажу и опишу кейсы применения.
Как это работает - вы запускаете на своём компьютере клиент tuna с нужными аргументами, например tuna http 3000 чтобы открыть доступ к локальному сайту на http://localhlost:3000, клиент подключается к нашей туннельной ноде, которая имеет публичный адрес в интернете, происходит некоторая магия и вы получаете ссылку вида https://8lo6x5-127-0-0-1.ru.tuna.am перейдя по которой вы попадаете на свой локальный сайт.
Публикация локального сайта
Например, вы – Frontend разработчик и хотите дать доступ к локальному стенду вашему коллеге. Как обычно запускаете в консоли yarn server видите, что приложение запустилось на http://localhost:3000, в соседней консоли запускаете tuna http 3000 , видите ссылку вида https://foo-bar.ru.tuna.am, всё, с этого момента ваш локальный сайт доступен в интернете.
Из опций можно добавить базовую авторизацию, заголовки, ограничить доступ по IP подсетям , можно задать статичный поддомен и другое, полный список есть в документации. Также есть встроенный инспектор запросов. Это легковесный интерфейс встроенный в утилиту, из которого удобно отслеживать запросы, заголовки и прочую отладочную информацию.
Файловый сервер
Если надо передать достаточно объёмный файл, к примеру в 10Gb это превращается в квест. Нужно загрузить файл на какой-нибудь облачный диск (яндекс или гугл), опубликовать этот файл и дать ссылку другу и только после этого он сможет его скачать. Согласитесь было бы удобно передать файл сразу напрямую другу. Для этого запустите tuna http --file-server=. с указанием каталога который хотите опубликовать, и передайте ссылку другу, а он сможет скачать файл практически напрямую с вашего ПК без загрузки его на сторонние сервисы и потери времени.
SSH туннели и техническая поддержка
В Windows если вы хотите предоставить доступ к рабочему столу, то наверное сразу думаете о teamviewer или аналогах, но если нужна помощь на сервере с Linux, нужно создать пользователя, дать ему доступ по SSH, а для этого опять нужен белый IP, а потом ещё не забыть удалить пользователя и отозвать все доступы в общем рутина. По этому в tuna есть встроенный SSH сервер и можно 1 командой открыть доступ к примеру для тех. поддержки какого-нибудь ПО которое вы покупаете. А завершив команду доступ прервётся и всё. не надо ни о чём переживать.
Проброс TCP порта
Можно открыть доступ к локальной базе данных, PostgreSQL, MySQL или любое другое ПО доступное по TCP - Redis, RabbitMQ, Kafka и так далее. Много примеров есть в нашей документации.
Ещё можно открыть доступ к примеру к локальному серверру с Minecraft, я описывал опыт в этой статье.
Приведу живой пример из практики. В локальной сети есть IP камера и нужно предоставить к ней прямой доступ по RTSP потоку. Запускаем tuna tcp <ip-адрес-камеры-в-локальной-сети>:554 , получаем ссылку и подключаемся.
Триггеры
Ещё полезный функционал во всяческих автоматизациях, это выполнение действий по наступлению событий. Триггеры по наступлению HTTP (webhook) или SMTP (mail) уведомления. Запускаете команду tuna trigger webhook /root/trigger.sh получаете ссылку, отправляете запрос по ссылке, а tuna выполнит указанный скрипт.
Цена и стравнение с конкурентами
В сравнении с ngrok, inlets, tunnelin, localxpose (это первое что гуглится, список не полный), у нас реализован почти весь тот-же функцинал, в каких то моментах даже больше.
Какие у нас есть тарифы:
Хобби - бесплатно
Разработчик - 299р. в месяц или 2990р. в год
Команда - 599р. в месяц или 5990р. в год / за каждого учасника
Серверы для построения туннелей есть в России и Нидерландах. Близость туннельных серверов уменьшает задержку и увеличивает скорость.
Как использовать?
Мы поддерживаем клиенты под Windows, macOS, Linux и FreeBSD . Чтобы начать пользоваться Tuna:
- Зарегистрируйтейсь в личном кабинете
- Установите клиент по инструкции
- Пользуйтесь!
Контакты
Подробнее можете посмотреть всё на сайте https://tuna.am, в документации и блоге надеюсь вам понравится работать с tuna.
Если возникли вопросы, можете задать их нам по почте info@tuna.am, тут в коментариях или нашем чате в telegram.