Как локальное приложение сделать доступным из Интернета

#web

Итак, представим ситуацию: у вас локально запущен web-сервер с неким приложением. Вам нужно срочно сделать так, чтобы к этому приложению можно было получить доступ из Интернета. У вас нет времени на настройку хостинга (ну, или нет желания/возможности за него платить). Что делать? На самом деле, решить эту проблему можно очень легко, потратив буквально одну минуту. Нас выручит такое решение, как ngrok.

Установка ngrok

В первую очередь, идём на официальный сайт ngrok и следуем инструкциям по установке на вашу ОС. К примеру, на Mac можно запустить команду:

brew install ngrok/ngrok/ngrok

На Windows используйте Chocolatey:

choco install ngrok

В принципе, это всё, ngrok готов к работе!

Получение токена

Теперь нам потребуется специальный токен ngrok, который можно получить в личном кабинете. Для этого зарегистрируйтесь на сайте и перейдите во вкладку Your authtoken. Здесь просто скопируйте содержимое из поля Your Authtoken, после чего в терминале запустите команду:

ngrok config add-authtoken YOUR_TOKEN_HERE

Регистрация на сервисе совершенно бесплатна, но учтите, что тариф Free имеет ряд ограничений. В частности, внешний домен будет иметь постфикс ngrok-free.app, а количество запросов HTTP в месяц не может превышать 20 000.

Запуск ngrok

Удостоверьтесь, что ваше web-приложение запущено локально, после чего в отдельной вкладке терминала выполните команду:

ngrok http PORT

PORT — это номер порта, на котором работает ваше приложение.

После запуска этой команды вы увидите информацию в духе:

Forwarding https://2f71-85-254-75-227.ngrok-free.app -> http://localhost:3000 

https://2f71-85-254-75-227.ngrok-free.app — это адрес вашего приложения в Интернете!

Настройки безопасности

Учтите, что некоторые веб-фреймворки (например, Rails) могут по умолчанию блокировать доступы через Ngrok. Чтобы решить эту проблему, вам потребуется разрешить обращение через Ngrok. Конкретный порядок действий зависит от вашего фреймворка. К примеру, на Rails можно в конфигурацию добавить:

Rails.application.config.hosts << /.*\.ngrok-free\.app/i

После этого не забудьте перезапустить сервис.