Exposer son localhost sur la toile en 30 secondes (oui, oui !)

09/11/2018

Aucun commentaire

Article express aujourd’hui sur une problématique auquel la plupart des développeurs ont dû se confronter une fois : exposer son environnement local, plus communément appelé ‘localhost’ sur la toile mondiale.

En effet, que ce soit pour des intégrations statiques ou de la correction de bugs (surtout des bugs de compatibilités entre les navigateurs ou entre les versions de smartphones), il peut être chronophage suivant la structure et l’encapsulation du projet, de déployer sur un environnement de staging (tests) pour chaque petite modification.

Arrêtons le suspense : localtunnel est votre ami !!!

localtunnel OU commment exposer son localhost en 30 secondes

Le benchmark de notre côté était assez rapide, une palette assez large d’outils existe pour exposer son localhost, certains sont bien plus complets que localtunnel : ngrok ou  Burrow.io mais les fonctionnalités les plus intéressantes sont payantes (entre 3 et 5 € en moyenne) et pour avoir utiliser ngrok, la configuration est moins naturelle.

Qui plus est, ce qui nous intéresse, c’est un outil simple, rapide à prendre en main et gratuit (yes ! c’est toujours mieux) pour exposer nos applications ou nos APIs.

L’installation

Rien de plus simple, une installation standard via npm :

npm install -g localtunnel

 

Utilisation

L’utilisation se fait également en ligne de commande. La commande minimale est la suivante :

lt --port 8888

Via ceci, nous exposons notre localhost qui est sur le port 8888 (MAMP par exemple). L’argument –port est obligatoire dans la commande.

Sinon, les 2 autres arguments les plus utilisés sont :

  • --subdomain : il permet de renseigner un nom de sous domaine pour l’URL distante. Ex: https://monurldistante.localtunnel.me
  • --local-host : Argument très utile si vous utilisez des virtuals hosts sur votre environnement

 

Exemples d’utilisations

  • Exposer votre localhost sur le port 80
lt --port 80
  • Exposer votre localhost sur le port 80, avec une URL distante = https://mylocalhost.localtunnel.me
lt --port 80 --subdomain mylocalhost
  • Exposer votre localhost sur le port 80, avec une URL distante = https://mylocalhost.localtunnel.me ET ouvrir directement l’URL dans votre navigateur 
lt --port 80 --subdomain mylocalhost -o
  • Exposer votre localhost sur le port 80, avec une URL distante = https://mylocalhost.localtunnel.me ET tracer les URLs
lt --port 80 --subdomain mylocalhost --print-requests

 

A savoir également :

  • Il ne faut pas fermer votre terminal ou arrêter l’execution de la commande, ceci mettra un terme à l’exposition de votre localhost
  • L’URL distante ne correspondra pas à votre URL en local, donc attention aux liens statiques dans votre code ou dans votre base de données
  • lt —help est votre ami ! 🙂

 

Enfin, localtunnel peut être intégré dans des tests unitaires via son API, n’étant pas le sujet principal de cet article et n’ayant pas pu tester en profondeur cette fonctionnalité, je vous laisse la découvrir : https://github.com/localtunnel/localtunnel

 

C’est tout pour moi ! 😉