Log in to leave a comment
No posts yet
Ситуация, когда при использовании бесплатных инструментов туннелирования приходится мириться с постоянно меняющимися случайными URL, знакома многим. В таких сервисах, как ngrok, URL меняется при каждом перезапуске, и каждый раз приходится заходить в настройки Stripe или GitHub, чтобы ввести новый эндпоинт. Это простая, но повторяющаяся задача, которая при выполнении три-четыре раза в день незаметно отнимает до 20 минут. В пересчете на год один разработчик тратит около 80 часов просто на копирование и вставку адресов вебхуков.
zrok решает эту проблему раз и навсегда. Сначала зарезервируйте свое уникальное имя хоста с помощью команды zrok reserve public localhost:8080. Затем просто сопоставьте зарезервированное имя при вводе команды общего доступа. Теперь, даже если вы перезапустите терминал или компьютер, адрес вашего вебхука, зарегистрированный во внешних сервисах, останется прежним. Одна настройка позволяет полностью исключить время, затрачиваемое на правку адресов.
Метод ручного запуска сервера в одном терминале и инструмента туннелирования в другом — идеальный рецепт для ошибок. Ситуация, когда сервер запущен, но вы забыли включить туннель, из-за чего ответы от внешних API теряются, вызывает лишь раздражение. Поскольку zrok использует сетевой оверлей OpenZiti, он отлично интегрируется с контейнерными средами.
Самый чистый способ — включить сервис zrok напрямую в файл docker-compose.yml. Достаточно использовать образ openziti/zrok и добавить полученный токен в файл .env. При такой конфигурации одна команда docker compose up одновременно поднимает и бэкенд-сервер, и туннель для внешней связи. Членам команды не нужно устанавливать или настраивать дополнительные инструменты — все работают в идентичной среде. Это самый надежный способ структурно блокировать человеческий фактор в ручных настройках.
Когда нужно показать коллеге API, над которым вы работаете локально, создание публичного URL может вызвать опасения по поводу безопасности. Ведь любой, кто знает адрес, теоретически может получить доступ к вашей локальной БД. zrok поддерживает функцию приватного доступа (private share), которая обеспечивает безопасную связь без публичного URL.
Принцип прост: когда вы запускаете zrok share private http://localhost:8080, генерируется уникальный токен. Вы передаете этот токен коллеге, и он вводит в своем терминале zrok access private [токен]. Теперь коллега может получить доступ к вашему локальному серверу через localhost:9191 на своем компьютере. Создается виртуальный канал, доступный только вам, без выхода в открытый интернет. Это позволяет мгновенно организовать пространство для совместной работы с оконечным шифрованием без развертывания отдельного VPN-сервера.
При росте объема передаваемых данных бесплатные планы коммерческих сервисов быстро достигают своих пределов. Скорость падает, или вводятся ограничения пропускной способности, что постоянно прерывает тестирование. Поскольку исходный код zrok открыт, вы можете развернуть собственный контроллер на внутреннем сервере компании или на недорогом VPS.
Собственный хостинг позволяет заменить расходы на платные тарифы (около 100 долларов в год) на затраты на содержание сервера в размере около 5 долларов в месяц. И дело не только в экономии. На выделенном сервере можно активировать протокол QUIC, что заметно улучшает производительность сети по сравнению с SaaS-решениями. Благодаря снижению задержек тестирование API с передачей больших объемов данных становится гораздо комфортнее. В итоге вы получаете инструмент, оптимизированный под вашу среду, а не подстраиваете разработку под ограничения стороннего сервиса.