Řekněme, že potřebujete urgentně připravit demo webu pro klienta či kolegu na druhé straně světa. Nebo třeba vyvíjíte s webhooky nějaké externí aplikace. V obou případech budete potřebovat veřejně dostupnou URL. Můžete svou aplikaci nahrát na hostovaný server, ale budete každou drobnou změnu znova nahrávat jen, abyste byli schopni něco otestovat? Při lokálním vývoji může být takový proces velmi otravný. Tady nastupuje ngrok.
Rychlý start
Prvotní příprava ngrok je velmi jednoduchá a skládá se v podstatě ze tří kroků:
1) Instalace
Stačí stáhnout a rozbalit archiv s aplikací. Aplikace je jediný soubor. Na Linuxu pozor na to, aby byl soubor spustitelný. Ujistit se můžete příkazem:
# Soubor aplikace musí být spustitelný sudo chmod +x ngrok
Tip: soubor aplikace můžete na Linuxu buď přemístit do adresáře ~/bin nebo jeho umístění přidat do proměnné $PATH tak, aby byl soubor aplikace vždy spustitelný přes příkazovou řádku příkazem "ngrok". Na OS X nebo Windows by postup měl být podobný.
2) Spuštění
Pro spuštění tunelu pro standardní webový server (HTTP na portu 80) stačí zadat příkaz:
# Spuštění tunelu na HTTP port 80 ngrok http 80
Toť vše. Následně se vám objeví okno s přehledem, kde je vygenerovaná nová veřejná URL adresa tunelu a lokální adresa dashboardu.
Dashboard obsahuje přehled komunikace, která tunelem prochází a konfigurace ngroku. Zároveň má velmi užitečnou funkci Replay, která zopakuje již provedený request.
3) Registrace (volitelné)
Registrací získáte delší trvání tunelu, přehled tunelů ve svém dashboardu na dashboard.ngrok.com, TCP tunely a další výhody. Pro základní použití se však bez registrace v pohodě obejdete.
Po registraci je třeba propojit lokálního klienta s vašim účtem pomocí tokenu. Token je k dispozici v dashboardu a propojení s klientem proběhne příkazem:
# Propojení účtu s aplikací přes auth token ngrok authtoken <VÁŠ TOKEN>
Virtual Host
Pokud aplikace na lokálním serveru běží jako Virtual Host, lokální webserver používá hlavičku Host, aby rozpoznal, kterou aplikaci zobrazit. V takovém případě je při vytváření tunelu nutné specifikovat Host:
# Spuštění tunelu na virtual host "example.dev", HTTP port 80 ngrok http -host-header=example.dev 80
Přístup pod heslem
Přístup k tunelu lze chránit jménem a heslem přidáním parametru -auth. Tunel je pak chráněn pomocí HTTP BasicAuth:
# Ochrana tunelu heslem ngrok http -auth="jmeno:heslo" 80
Placené funkce a co dál?
ngrok je v základu zdarma. Nabízí však i placené funkce, jako například vlastní subdomény, konfigurační soubory pro více tunelů najednou, TLS protokol nebo IP whitelist. Především možnost vlastní subdomény je velmi praktická. Dá se tím vyhnout nutnosti změnit doménu v nastavení webhooku pokaždé, když je vytvořen nový tunel.
Dohromady jde o velmi praktický nástroj a zejména pro lokální vývoj a testování s webhooky třetích stran nebo API s omezením na URL jde o nedocenitelnou službu. V tomto článku nejsou ani zmíněny všechny možnosti, které ngrok nabízí. Proto, pokud si chcete přečíst více, doporučuji oficiální dokumentaci.
Pokud máte jakékoliv dotazy nebo tipy k ngrok, podělte se s námi v komentářích!
K tomuto článku již není možné přidávat další komentáře