TunnelHunt

Laravel и TunnelHunt: Демонстрация локального сайта в одну команду

Автор: Команда TunnelHuntОпубликовано: 12 октября 2025 г.
Логотипы Laravel и TunnelHunt соединенные туннелем

Разработка на Laravel — это удовольствие. Фреймворк предоставляет элегантные решения для множества задач, а команда php artisan serve позволяет мгновенно запустить локальный сервер. Но есть одна проблема, с которой сталкивается каждый разработчик: ваш локальный сайт виден только вам.

Что делать, если нужно:

  • Протестировать вебхук от Telegram, GitHub или любого другого внешнего сервиса?
  • Показать фронтенд-разработчику работающее API?
  • Быстро продемонстрировать результат заказчику, не тратя часы на деплой?

Стандартные решения — поднять staging-сервер, настроить CI/CD, возиться с DNS — требуют времени и сил. Но есть способ проще.

Сегодня мы представляем пакет, который глубоко интегрируется в экосистему Laravel и позволяет сделать локальный сайт публичным с помощью одной-единственной команды.

Проблема: php artisan serve работает только для вас

Команда php artisan serve запускает сервер на 127.0.0.1 (localhost). Этот адрес доступен только с вашего компьютера. Любой внешний сервис, пытающийся отправить запрос на http://127.0.0.1:8000, будет стучаться в свою собственную “дверь”, а не в вашу.

Чтобы принять входящий запрос извне, нужен публичный IP-адрес и открытый порт. TunnelHunt решает эту задачу, создавая безопасный туннель от нашего сервера до вашего локального приложения. А наш новый пакет делает этот процесс частью привычного Laravel-воркфлоу.

Сценарий: Тестируем вебхуки от Telegram-бота

Представим, вы разрабатываете Telegram-бота. Когда пользователь отправляет вашему боту сообщение или нажимает на кнопку, Telegram отправляет на ваш сервер POST-запрос (вебхук) с информацией об этом событии. Чтобы отладить логику бота, вам нужно дать Telegram публичный URL, который будет вести на ваше локальное приложение.

Шаг 1: Установка пакета

Если вы еще этого не сделали, установите наш пакет через Composer. Это займет меньше минуты.

composer require tunnelhunt/laravel-tunnelhunt

Пакет использует механизм автообнаружения Laravel, поэтому никакой дополнительной настройки не требуется. Новая команда сразу готова к работе.

Шаг 2: Запускаем туннель

Теперь, вместо php artisan serve, выполните в терминале новую команду:

php artisan serve:tunnel

Пакет сначала запустит локальный сервер в фоновом режиме, а затем немедленно инициирует SSH-соединение для создания туннеля.

Шаг 3: Получаем публичный URL

Через несколько секунд в вашей консоли появится вывод, содержащий самое главное — временный публичный адрес вашего сайта:

INFO  Laravel development server started on http://127.0.0.1:8000

INFO  Starting tunnelhunt.ru tunnel with 'nokey' plan...
INFO  Waiting for tunnelhunt.ru to provide a public URL...
Your public URL will appear in the SSH output below.

Your public URL is: http://somename-adjective-1234.nokey.tunnelhunt.ru

Вот и все! Теперь адрес http://somename-adjective-1234.nokey.tunnelhunt.ru можно указать в настройках вашего бота через BotFather (командой /setwebhook).

Шаг 4: Отладка

Когда пользователь напишет вашему боту, Telegram отправит запрос на этот URL, а TunnelHunt перенаправит его на ваш локальный сервер. Вы увидите запрос в логах Laravel, сможете использовать dd() или отладчик Xdebug так, как будто запрос пришел с вашего же компьютера.

Когда закончите, просто нажмите Ctrl+C в терминале. Туннель закроется, и ваш сайт снова станет локальным.

Дополнительные опции

Пакет был бы неполным без возможности кастомизации.

  • Запустить на другом порту:
    php artisan serve:tunnel --port=3000
  • Использовать Pro-аккаунт для фиксированного адреса:
    php artisan serve:tunnel --plan=pro

Заключение

Интеграция TunnelHunt напрямую в Laravel Artisan — это наш способ сделать жизнь разработчиков еще немного проще. Теперь для решения повседневных задач, таких как отладка вебхуков или демонстрация работы, не нужно покидать привычную среду и тратить время на сложные настройки.

Этот подход идеально подходит для:

  • Разработки чат-ботов
  • API-эндпоинтов
  • Тестирования OAuth-авторизации
  • Демонстрации frontend-части, которая обращается к вашему локальному API

Просто, быстро и безопасно. Установите пакет и попробуйте сами.