Lorsque vous développez des applications web ou autres services en ligne, il est possible que vous ayez besoin d’exposer votre serveur local sur Internet et ce pour diverses raisons. Par exemple, dans le cadre de l’intégration d’un service de paiement bancaire, vous serez amenés à recevoir des informations vous confirmant la bonne tenue du processus de paiement ou non. Afin que ce service puisse communiquer avec votre application alors en cours de développement, il faudra que cette dernière soit joignable depuis l’extérieur. C’est ici qu’intervient Serveo.net, un outil simple et efficace pour exposer temporairement votre serveur local sur Internet.
Serveo.net est un service en ligne qui vous permet de rendre votre serveur local accessible via un domaine public sur Internet. Cela signifie que vous pouvez partager votre application en développement avec d’autres personnes et outils sans nécessiter un déploiement sur un serveur distant.
Par exemple, lorsque nous travaillons avec certains services, nous avons besoin de recevoir des appels de ces derniers directement sur notre application web. Or, si nous sommes en train de travailler localement, cette dernière ne peut pas nous contacter directement car notre travail n’est pas exposé sur Internet. Sans des outils tels que Serveo.net, il faut donc travailler « à l’aveugle » et déployer sur des environnements de tests afin de vérifier notre travail au fur et à mesure. Cela induira des pertes de temps non négligeables car à chaque modification, chaque retour il faudra déployer une nouvelle mouture du code et relancer les vérifications nécessaires. Avec Serveo, il est possible de fournir directement une adresse sur laquelle le service avec lequel nous travaillons pourra nous contacter.
Cela peut s’avérer utile pour le développement mobile car il est ainsi possible d’accéder à notre application depuis un téléphone, une tablette etc. Il en est de même pour la démonstration de projets à d’autres collaborateurs et/ou clients. Concernant ce dernier point, nous préférerons cependant l’usage d’un vrai serveur sur lequel sera déployé notre application, évitant ainsi d’être dépendant d’une machine locale qui doit être connectée à Internet et du service Serveo.
L’utilisation de Serveo.net est vraiment très simple. Voici les étapes de base pour l’utiliser :
- Installation de SSH : assurez-vous d’avoir SSH installé sur votre système, car Serveo.net utilise SSH pour établir la connexion.
- Exécution de la commande SSH : pour exposer votre serveur local, utilisez la commande SSH suivante en remplaçant
votre-serveur-local
par l’adresse de votre serveur local etnom-du-domaine
par le nom de domaine que vous souhaitez utiliser.
ssh -R nom-du-domaine:80:votre-serveur-local:port serveo.net
Par exemple, si vous exécutez un serveur web local sur le port 3000, vous pouvez exécuter la commande suivante pour le rendre accessible via Serveo.net :
ssh -R mon-projet:80:localhost:3000 serveo.net
- Accès à votre serveur local : Une fois la commande exécutée avec succès, Serveo.net vous fournira un lien public. Vous pouvez partager ce lien avec d’autres personnes, et elles pourront accéder à votre serveur local en utilisant ce lien.
- Terminer la session SSH : Lorsque vous avez terminé de partager votre serveur local, il vous suffit de terminer la session SSH, et votre serveur local ne sera plus accessible via le lien Serveo.net.
Afin d’éviter les déconnexions automatique du service, vous pouvez ajouter le paramètre `ServerAliveInterval=60`. Ce qui vous donne par exemple la commande suivante pour exposer un serveur Ruby on Rails sur un sous-domaine de votre choix :
ssh -o ServerAliveInterval=60 -R mon_super_sous_domaine:80:localhost:3000 serveo.net
Ce faisant, il suffit de se rendre sur https://mon_super_sous_domaine.serveo.net et vous verrez apparaître votre site local !
Serveo.net présente plusieurs avantages :
- HTTPS : votre site sera exposé en https, ce qui vous permet de tester localement le comportement HTTPS sans avoir à gérer les divers certificats.
- Simplicité d’utilisation : vous n’avez pas besoin de configurer des règles de pare-feu complexes ni de modifier votre infrastructure réseau. Tout ce dont vous avez besoin, c’est d’une connexion SSH.
- Sécurité : Serveo.net utilise SSH pour établir des connexions, ce qui garantit un niveau élevé de sécurité lors de l’exposition de votre serveur local (voir https://serveo.net/blog/remote-access-to-ssh-servers-using-serveo).
- Gratuit : Serveo.net offre un plan gratuit, ce qui en fait une solution abordable pour les développeurs et les petites équipes.
- Pas de configuration DNS : vous n’avez pas besoin de configurer des enregistrements DNS, car Serveo.net génère automatiquement un nom de domaine pour vous.
Ngrok est un outil largement utilisé pour exposer des serveurs locaux sur Internet et pour de bonnes raisons. En effet, Ngrok offre une solution robuste et polyvalente pour l’exposition de serveurs locaux, avec une gamme de fonctionnalités avancées telles que la gestion des tunnels, la réexpédition de ports, et un tableau de bord facilitant l’expérience utilisateur. Il prend en charge à la fois HTTP et HTTPS, ce qui en fait un choix solide pour les développeurs souhaitant exposer des applications web sécurisées.
En revanche, Serveo se distingue par sa simplicité d’utilisation. Il n’exige aucune inscription ni configuration préalable, et vous permet d’exposer votre serveur local en quelques commandes SSH simples. Mais surtout, c’est son coût qui fait la différence car Ngrok a une politique tarifaire assez aggressive selon les besoins. Si vous avez besoin de sous-domaines customisés le prix peut rapidement s’envoler : 8$ par mois par développeur et pour un seul sous-domaine personnalisé. Serveo quant à lui est gratuit, avec pour seul désavantage de ne pas proposer le blocage d’un sous domaine, ce qui veut dire qu’un autre utilisateur peut utiliser le même sous domaine que vous quand vous ne l’utilisez pas.
Serveo.net est un outil pratique et simple d’utilisation pour les développeurs qui ont besoin de travailler avec des services externes ou qui souhaitent partager leurs projets en cours de développement avec d’autres personnes de manière simple et sécurisée.