Vous est-il déjà arrivé d’avoir un site en cours de développement sur lequel il était impossible de tester certaines fonctionnalités sans devoir le mettre en ligne ? Comme vous le savez peut-être, il existe des outils qui vous permettent d’exposer votre serveur local au net pour palier à cette difficulté. Finch est un de ceux-là.
Avant d’aller plus loin, étudions un petit exemple.
Mettons donc que votre application fasse appel à un service externe pour effectuer un opération quelconque à sa place. Vous souhaitez peut-être que le service externe vous notifie une fois l’opération terminée. C’est faisable via les Webhooks. En gros, une fois le travail terminé, le service envoie une requête de type POST à une URL que vous lui renseignez de votre domaine. Et c’est là que ça coince quand on se retrouve à donner des URLs comme http://localhost:8000/webhooks/service/truc/muche . Autant le dire d’entrée de jeu: ça ne marche évidemment pas du tout! Le service externe n’a absolument aucun moyen d’accéder l’URL sur votre serveur local.
Solutions possibles
Voici les solutions que vous avez peut-être appliqué si vous avez rencontré ce type de cas de figure: Vous avez certainement dû déplacer tous vos fichiers sur votre FTP, modifier certains paramètres de configuration (base de données, etc.), puis seulement vous avez testé. Ensuite, vous avez dû adapter le code pour qu’il soit pleinement fonctionnel. Et enfin, vous avez rapatrié les portions de code implémentant la fonctionnalité voulue sur votre version locale de travail pour qu’elle soit à jour. Pas terrible comme workflow…
Au mieux, vous avec peut-être utilisé une solution comme git qui vous permettait de faire des envois sur votre serveur automatiquement à chaque push. Mais ça n’est pas non plus idéal, puisque si la fonctionnalité sur laquelle vous travailliez n’était pas correctement implémentée, il vous fallait faire un rollback, coder à nouveau, puis refaire un push. Beaucoup d’opérations qu’on oserait qualifier d’inutiles et dont on se passerait bien volontier!
Finch : une vraie solution
Avouons que jusque-là, les méthodes proposées n’étaient franchement pas folichonnes et qu’on aimerait éviter les solutions avec lesquelles on risque de se prendre les pieds dans le tapis à tout moment. C’est là que Finch entre en jeu. Ce service va vous permettre de définir une adresse locale qui doit être exposé au net. Finch va alors créer un sous-domaine de type http://quelquechose.usefinch.com/ et votre application web locale sera accessible depuis le net. En ce qui nous concerne, il n’y a presque rien à faire. Concrètement, il faut:
- Installer finch sur votre machine via npm install finch –global
- S’inscrire sur le site de Finch ou via la command finch register
- Lancer le forward via la commande finch forward http://monadresselocale:80
C’est tout! Finch vous fournira alors votre adresse publique à laquelle tout le monde pourra accéder.
Quelques considérations supplémentaires
Une chose importante reste à savoir: Finch n’est pas un service gratuit. Ceci étant, ils ont un plan gratuit (Fledgling) qui vous permet de bénéficier de 2h/mois de forward. Ca n’a l’air de rien mais ça peut être suffisant si vos besoins sont occasionnels. Sinon, il faudra mettre la main au portefeuille.
Si vous préférez une solution totalement gratuite, il existe par exemple Ngrok qui vous demandera un peu plus de configuration.
Pourquoi je vous parle de Finch alors ?
Parce qu’il est extrêmement simple à mettre sur pied. En 5 minutes, votre site local est en ligne et accessible partout.
Conclusion
Avec cet article, nous avons vu comment faire en sorte que notre serveur web local soit accessible facilement via internet. En espérant que ça vous facilite la vie à vous aussi