Expose, une alternative à ngrok

Expose est un outil dont le but est d’exposer des services locaux vers l’extérieur. Il a été développé en PHP par Beyond Code.

Contrairement à ngrok, Expose est une solution OpenSource qui peut être auto-hébergée.

On a donc davantage de contrôle côté serveur et sur le trafic.

Dans quel cas pouvons-nous utiliser Expose ?

Il peut par exemple servir de :

  • Debug lors du développement d’une application mobile
    En effet, lorsque l’on développe une application mobile on souhaite parfois tester un build de notre application sur les stores.
    Notre application n’ayant pas accès à notre API locale, on doit pouvoir ouvrir un accès pour pouvoir tester nos features, notamment sur un build de staging si nous n’avons pas encore d’environnement adéquat en early.
  • Faciliter la mise en place de webhook
    Qui n’a pas déjà implémenté un service bancaire ?
    On peut parfois avoir besoin de créer un webhook accessible depuis le service bancaire pour avoir les codes retours suite à un test de paiement et mettre à jour nos commandes de test.Et pour un système d’authentification avec Facebook ou Google ?Il est possible de paramètrer une URL de Callback en y mettant l’URL Expose afin de tester l’authentification.

    Et pour un système d’authentification avec Facebook ou Google ?
    Il est possible de paramètrer une URL de Callback en y mettant l’URL Expose afin de tester l’authentification.
  • Ou tout simplement exposer un projet en cours de développement.
    Pour le montrer à un client lors d’une démo, et afin qu’il puisse tester un POC très rapidement.

Installation

Expose s’installe assez facilement, il suffit d’un serveur qui supporte PHP 7.2 avec composer

composer global require beyondcode/expose

En s’assurant que le dossier bon de composer est bien dans le PATH (vous pouvez ajouter cette ligne à la fin du .bashrc selon l’endroit où se trouve vos fichiers composer).

composer global require beyondcode/expose

On peut aussi l’installer directement via l’exécutable :

curl https://github.com/beyondcode/expose/raw/master/builds/expose -L --output expose
chmod +x expose
./expose

Utilisation

En utilisant le serveur d’expose

Tout d’abord créer un compte sur https://expose.dev.

On obtient ensuite un token que l’on doit activer :

expose token <montoken>

Vous pouvez ensuite démarrer un tunnel sur le port souhaité avec la commande :

expose share http://monsite.test

Expose génère une URL publique accessible via l’extérieur.

Vous avez également accès à un dashboard pour visualiser les requêtes HTTP http://127.0.0.1:4040

Pour le moment l’utilisation reste la même que pour ngrok, tirons tous les avantages d’expose en auto-hébergeant la solution.

Mise en place de l’auto-hébergement

Prérequis :

  • PHP 8.1
  • extension sqlite3
  • installer expose comme précédemment (celui-ci installe le client et le serveur)

Pour lancer le serveur expose, rien de plus simple, cela se fait en une seule commande :

expose serve monnomdedomaine.fr

Dans notre exemple sur mon serveur j’exécute la commande :

expose serve dtang.fr --port=3000

L’argument port permet de spécifier un port différent du port 8080 (défaut).

N’oubliez pas d’ouvrir le port en TCP sur le serveur.

J’ai maintenant un tunnel Expose opérationnel !

Il faut maintenant configurer notre client expose sur notre machine pour qu’il passe par notre serveur.

Pour cela il faut modifier le fichier ~/.expose/config.php et y ajouter notre serveur

Vous pouvez également modifier d’autres paramètres dans ce fichier, n’hésitez pas à vous référer à la documentation officielle https://expose.dev/docs/server/starting-the-server

Relancez la commande sur votre machine :

expose share http://monsite.test

Voilà, vous exposez à présent votre site local à travers votre serveur !

Avantages par rapport à ngrok

Lorsque l’on utilise ngrok, on peut rapidement être embêté par le fait de ne pas utiliser d’url custom, ce qui force dans certains cas spécifique à redéployer une version de notre application pour utiliser la bonne url, d’autant plus qu’il y a un temps limité à l’utilisation d’une url avec ngrok.

En auto-hébergeant sa propre instance d’Expose on élimine toutes les limites qui nous auraient été imposées :

  • Nombre de requêtes (20000 par mois)
  • Limite de requêtes par minute (4000 par minutes)
  • Limitation du maximum de données (1Go sur la version gratuite de ngrok)

Pricingngrok propose trois versions :

  • personal : 8$/dev/mois, ce qui revient à 96$ annuel
  • pro : 20$/dev/mois, ce qui revient à 240$ annuel
  • enterprise : 39$/dev/mois, ce qui revient à 468$ annuel

Tandis qu’Expose propose (prix annuels) :

  • pro : 59$/dev/an
  • business : 499$/dev/an
  • Enterprise : sur mesure

Il faudra donc bien choisir son offre par rapport à nos besoins, si nos besoins restent basiques, la version personal d’ngrok fera très bien l’affaire.ConclusionExpose constitue une bonne alternative Open Source à ngrok, ce qui permet de ne pas dépendre d’un seul acteur et de confronter deux solutions par rapport à nos besoins.Il permet un contrôle total grâce à son auto-hébergement, sans les limitations imposées par ngrok (requêtes, débit de données, etc.). Les coûts annuels d’Expose sont également plus compétitifs, bien que la version basique de ngrok puisse suffire pour des besoins limités.Aller plus loin avec ExposeNous avons vu comment mettre une instance auto-hébergeable d’Expose, celui-ci permet également d’aller plus loin avec sa gestion d’utilisateurs pour l’authentification, la gestion de domaines, de sites partagés ainsi qu’une interface pour faciliter l’administration.

Abonnez-vous au blog de Yield Studio

Restez en contact avec Yield Studio et recevez les nouveaux articles de blog dans votre boîte de réception.

Oops! Something went wrong while submitting the form.
Yield Studio traitera vos données conformément à sa politique de confidentialité

Yield Studio recrute les top 1% des meilleurs profils tech, product, design

Yield Studio développe des produits digitaux en un temps record

Simulateur

Bienvenue dans le
simulateur d’estimation

Sélectionnez
vos besoins

Sélectionnez un ou plusieurs choix

Définissez les
fonctionnalités

Sélectionnez un ou plusieurs choix

Dernière
étape !

Renseignez votre adresse mail pour recevoir l’estimation !
Obtenez l’estimation
Précédent
Suivant

Bravo ! Vous avez terminé
l’estimation de votre future app !

Vous recevrez dans votre boite mail l’estimation personnalisé. Une estimation vous offre la possibilité de vous projeter dans un budget, vous permettant ainsi de planifier en toute confiance. Néanmoins, chez Yield, nous adoptons une approche agile, prêts à remettre en question et ajuster nos évaluations en fonction de l'évolution de vos besoins et des spécificités de votre projet.
Retour au site
Oops! Something went wrong while submitting the form.