ngrok http 80 : une seule ligne, et un environnement WordPress tournant en local sur une machine devient accessible depuis n’importe où, via une adresse HTTPS temporaire. Pour un freelance qui travaille seul et n’a ni VPN d’agence ni serveur de démonstration permanent, cette simplicité change concrètement la façon de présenter une maquette à un client.
La situation est familière : un rendez-vous client se termine par « pouvez-vous me montrer où ça en est ? », sans qu’aucun environnement de recette ne soit encore déployé quelque part. Plutôt que de repousser la démonstration ou de bâcler un déploiement précipité, un tunnel ngrok permet de montrer l’environnement local tel qu’il tourne, immédiatement.
Ce que fait réellement ngrok
ngrok crée un tunnel sécurisé entre une machine locale et une adresse publique temporaire, sans configuration de routeur, sans ouverture de port, sans certificat TLS à gérer soi-même. Le trafic entrant sur l’adresse publique est redirigé vers le port local choisi, ici celui du serveur WordPress local.
Mettre en place le tunnel en pratique

Après installation du client ngrok et association à un compte (nécessaire même pour l’usage gratuit), la commande de base suffit pour un environnement WordPress tournant sur le port 80 d’une machine locale :
ngrok http 80
Le terminal affiche alors une adresse publique de type https://a1b2c3d4.ngrok-free.app, valable pour la durée de la session, à transmettre directement au client. Si l’environnement local tourne sur un port différent, par exemple via DDEV ou Lando qui exposent souvent des ports non standards, la commande s’adapte simplement :
ngrok http 8080
Le piège de l’URL WordPress figée
WordPress enregistre son adresse de site dans la base de données (siteurl et home), ce qui pose un problème dès que l’environnement local est censé répondre à une adresse ngrok temporaire plutôt qu’à son adresse locale habituelle. Sans ajustement, les liens internes, les ressources CSS et JS pointeront vers l’adresse locale, invisible depuis l’extérieur.
La solution la plus rapide, sans modifier la base de données de façon permanente, consiste à définir les constantes dans wp-config.php juste avant la démonstration, en lisant l’adresse ngrok depuis une variable d’environnement :
if ( getenv( 'NGROK_URL' ) ) {
define( 'WP_HOME', getenv( 'NGROK_URL' ) );
define( 'WP_SITEURL', getenv( 'NGROK_URL' ) );
}
Cette définition conditionnelle ne s’active que si la variable d’environnement est présente, ce qui laisse l’environnement local fonctionner normalement en dehors des sessions de démonstration.
Variantes utiles selon le contexte
- Réserver un sous-domaine ngrok fixe (fonctionnalité payante) évite de retransmettre une nouvelle adresse à chaque démonstration auprès du même client récurrent.
- Ajouter une protection par mot de passe basique sur le tunnel (
ngrok http 80 --basic-auth="client:motdepasse") réduit le risque qu’un tiers tombe sur l’adresse temporaire par hasard. - Limiter la durée d’ouverture du tunnel à la fenêtre du rendez-vous, en le fermant juste après, reste la protection la plus simple et la plus efficace.
Un tunnel de démonstration n’est pas un accès permanent : il vaut mieux le fermer trop tôt que de l’oublier ouvert.
Les limites à garder en tête
Un tunnel ngrok reste une solution ponctuelle, pas une stratégie d’hébergement de démonstration. La sécurisation d’un accès permanent à un environnement local, avec authentification robuste et disponibilité garantie, relève d’une réflexion distincte, à traiter différemment selon la récurrence du besoin. Pour une présentation ponctuelle de quelques minutes, en revanche, la simplicité de ngrok reste difficile à égaler.
En résumé
Pour un freelance sans infrastructure d’agence, un tunnel ngrok transforme un environnement local en démonstration accessible en quelques secondes, à condition de penser à ajuster temporairement l’adresse de site WordPress et à refermer le tunnel une fois la présentation terminée. C’est un outil de dépannage ponctuel, pas un substitut à un vrai environnement de recette.