Skip to content

Instantly share code, notes, and snippets.

@asvae
Last active April 20, 2017 09:42
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save asvae/64007501c6da91d2abac to your computer and use it in GitHub Desktop.
Save asvae/64007501c6da91d2abac to your computer and use it in GitHub Desktop.
Ngrok на среде homestead своими руками
Что такое [Ngrok](https://ngrok.com/)? Не спешите лететь по ссылке. Я сейчас расскажу.
Это своеобразный туннель к локалхосту. Допустим, у вас есть локальный проект, к которому вы обращаетесь следующим образом `http://my-project.local`. Ngrok позволяет другим человекам из интернета открыть ту же страницу, забив адрес `http://my-project.ngrok.com`.
Первый и главный вопрос:
Нафига оно нужно?
===========
1) Очень легко и просто показать заказчику полуфабрикат/прототип, и даже поправить что-нибудь на ходу.
2) Полезно для совместной разработки.
3) Можно хостить что-нибудь мелкое (извращение).
Понятно, что можно использовать тестовый сервер, но это лишняя морока. Ngrok — легковесное решение.
Как?
===========
Инструкцию привожу для среды homestead под windows. На других системах настройка также трудностей представить не должна.
Первым делом зарегистрируйтесь на [сайте](https://dashboard.ngrok.com/user/signup) и раздобудьте `authtoken`.
Теперь зайдем в `Homestead.yaml`:
```
sites:
- map: my-project.local
to: /home/vagrant/my-project/public
- map: my-project.ngrok.local
to: /home/vagrant/my-project/public
```
Фактически, мы маппим одну и ту же папку на два разных хоста. Прикол здесь в том, что только `my-project.local` указан в hosts. Как следствие, `my-project.local` браузер будет искать локально, а за `my-project.ngrok.local` полезет в сеть.
Теперь нужно поставить ngrok на homestead. Можно это сделать консольно, но там немного старая версия.
```
sudo apt-get install ngrok-client
```
С другой стороны, можно скачать архив, как советует [инструкция по установке](https://ngrok.com/download).
Успешно поставив сабж и написав в консоли `ngrok -authtoken [authtoken] -subdomain my-project 80`, вы должны увидеть примерно следующий текст:
```
Tunnel Status online
Version 1.6/1.7
...
```
Ваш сайт будет доступен онлайн по адресу `my-project.ngrok.com`. Но каждый раз писать такую здоровую команду муторно. Сделаем алиас.
Открываем файлик homestead/aliases, дописываем туда:
```
function ngroka() {
if [[ "$1" ]]
then
ngrok -authtoken HnPv9qCUyqbSdFiIb1mC -subdomain $1 80
else
echo "Error: missing required parameter."
echo "Usage: ngrok subdomain."
fi
}
```
Заключение
============
Вот и все. `ngroka my-project` в консоли — и ваш проект доступен заказчику/коллеге/тентаклю из соседней галактики.
@asvae
Copy link
Author

asvae commented Feb 19, 2016

Что такое Ngrok? Не спешите лететь по ссылке. Я сейчас расскажу.

Это своеобразный туннель к локалхосту. Допустим, у вас есть локальный проект, к которому вы обращаетесь следующим образом http://my-project.local. Ngrok позволяет другим человекам из интернета открыть ту же страницу, забив адрес http://my-project.ngrok.com.

Первый и главный вопрос:

Нафига оно нужно?

  1. Очень легко и просто показать заказчику полуфабрикат/прототип, и даже поправить что-нибудь на ходу.
  2. Полезно для совместной разработки.
  3. Можно хостить что-нибудь мелкое (извращение).

Понятно, что можно использовать тестовый сервер, но это лишняя морока. Ngrok — легковесное решение.

Как

Инструкцию привожу для среды homestead под windows. На других системах настройка также трудностей представить не должна.

Первым делом зарегистрируйтесь на сайте и раздобудьте authtoken.

Теперь зайдем в Homestead.yaml:

sites:
    - map: my-project.local
      to: /home/vagrant/my-project/public

    - map: my-project.ngrok.local
      to: /home/vagrant/my-project/public

Фактически, мы маппим одну и ту же папку на два разных хоста. Прикол здесь в том, что только my-project.local указан в hosts. Как следствие, my-project.local браузер будет искать локально, а за my-project.ngrok.local полезет в сеть.

Теперь нужно поставить ngrok на homestead. Можно это сделать консольно, но там немного старая версия.

sudo apt-get install ngrok-client

С другой стороны, можно скачать архив, как советует инструкция по установке.

Успешно поставив сабж и написав в консоли ngrok -authtoken [authtoken] -subdomain my-project 80, вы должны увидеть примерно следующий текст:

Tunnel Status                 online                          
Version                       1.6/1.7 
...

Ваш сайт будет доступен онлайн по адресу my-project.ngrok.com. Но каждый раз писать такую здоровую команду муторно. Сделаем алиас.
Открываем файлик homestead/aliases, дописываем туда:

function ngroka() {
    if [[ "$1" ]]
    then
        ngrok -authtoken HnPv9qCUyqbSdFiIb1mC -subdomain $1 80
    else
        echo "Error: missing required parameter."
        echo "Usage: ngrok subdomain."
    fi
}

Заключение

Вот и все. ngroka my-project в консоли — и ваш проект доступен заказчику/коллеге/тентаклю из соседней галактики.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment