Tuna - доступная замена ngrok и аналогов
Ранее я уже рассказывал как мы случайно запустили новый сервис тут. Но сегодня я хочу подробнее остановиться на обзоре возможностей.
Tuna - что это вообще такое? Если коротко - это консольная утилита в основном для разработчиков, но не только. Помогает получить прямой доступ из интернета к запущенным локально на ПК сайтам или приложениям. Вы запускаете в консоли короткую команду, получаете в ответ ссылку, а ваш друг из любой точки мира перейдя по ней попадёт на сайт запущенный на вашем ПК в локальной сети, и всё это без VPN, требований в "белом" IP, без проброса портов, так далее.
Но давайте я лучше покажу и опишу кейсы применения.
Публикация локального сайта
Например, вы – Frontend разработчик и хотите дать доступ к локальному стенду вашему коллеге. Как обычно запускаете в консоли yarn server видите, что приложение запустилось на http://localhost:3000, в соседней консоли запускаете tuna http 3000 , видите ссылку вида https://foo-bar.ru.tuna.am, всё с этого момента ваш локальный сайт доступен в интернете.
В этом видео показан пример описанный выше, только я использовал статический сайт внутри контейнера с nginx.
Из опций можно добавить базовую авторизацию, заголовки, ограничить доступ по IP подсетям , можно задать статичный поддомен и другое. Также есть встроенный инспектор. Это легковесный интерфейс встроенный в утилиту, из которого удобно отслеживать запросы, заголовки и прочую отладочную информацию.
Файловый сервер
Если надо передать достаточно объёмный файл, к примеру в 10Gb это превращается в квест. Нужно загрузить файл на какой-нибудь облачный диск (яндекс или гугл), опубликовать этот файл и дать ссылку другу и только после этого он сможет его скачать. Согласитесь было бы удобно передать файл сразу напрямую другу. Для этого запустите tuna http --file-server=. с указанием каталога который хотите опубликовать, и передайте ссылку другу, а он сможет скачать файл практически напрямую с вашего ПК без загрузки его на сторонние сервисы и потери времени.
Техническая поддержка
В Windows если вы хотите предоставить доступ к рабочему столу, то наверное сразу думаете о teamviewer или аналогах, но если нужна помощь на сервере с Linux, нужно создать пользователя, дать ему доступ по SSH, а для этого опять нужен белый IP, а потом ещё не забыть удалить пользователя и отозвать все доступы в общем рутина. По этому в tuna есть встроенный SSH сервер и можно 1 командой открыть доступ к примеру для тех. поддержки какого-нибудь ПО которое вы покупаете. А завершив команду доступ прервётся и всё. не надо ни о чём переживать.
Проброс TCP порта
Приведу живой пример из практики. В локальной сети есть IP камера и нужно предоставить к ней прямой доступ по RTSP потоку. Запускаем tuna tcp <camera-ip>:554 , получаем ссылку и подключаемся.
Триггеры
Ещё полезный функционал во всяческих автоматизациях, это выполнение действий по наступлению событий. В tuna доступны триггеры по наступлению HTTP (webhook) или SMTP (mail) уведомления. Запускаете команду tuna trigger webhook /root/trigger.sh получаете ссылку, отправляете запрос по ссылке, а tuna выполнит указанный скрипт.
Сравнение с конкурентами
В сравнении с ngrok, inlets, tunnelin, localxpose (это первое что гуглится, список не полный), нам ещё есть куда расти. К примеру у нас до сих пор не реализованный статичные TCP порты и при каждом перезапуске будет биндиться новый порт, это неудобно. В тоже время триггеры или встроенный SSH-сервер есть не у всех, а у нас есть.
Цена
Базовый функционал с ограничениями - бесплатен. Расширенный - 299 рублей в месяц, таких низких цен нет ни у кого. А в компании с возможностью в принципе оплатить в рублях, в России мы кажется 1-й вариант. Ну или напишите в комментариях, но я не находил аналогов.
Серверы для построения туннелей в России и Нидерландах. Близость туннельных серверов уменьшает задержку и увеличивает скорость.
В общем куда не плюнь, одни плюсы 🙂
Контакты
Подробнее можете посмотреть всё на сайте https://tuna.am/#pricing, надеюсь вам понравится работать с tuna.
Если возникли вопросы, можете задать их нам по почте info@tuna.am