
Rendre son développement local accessible depuis l’extérieur
Quand je développe une fonctionnalité de mon application qui nécessite des webhooks, ceux-ci ne peuvent logiquement pas appeler « http://localhost:8080 ». Voici comment faire.
L’objectif est de créer un tunnel entre un domaine accessible sur internet et notre serveur local. Pour cela, nous allons utilisé la fonctionnalité « cloudflared » de Cloudflare.
Prérequis
- Avoir un domaine géré par Cloudflare.
Installation
- Pour installer l’outil sous Windows, il faut lancer la commande suivante :
winget install --id Cloudflare.cloudflared
Cela installera automatiquement l’outil et l’ajoutera dans le PATH
. Attention, la mise à jour n’est pas automatique. Pour mettre à jour, il faut se rendre sur la page de téléchargement, récupérer la dernière version, la renommer cloudflared.exe
et remplacer l’exécutable.
Pour les autres OS, prenez la version qui vous convient sur cette page : Downloads · Cloudflare Zero Trust docs
Authentification
- Authentifiez vous à votre compte Cloudflare avec la commande :
cloudflared tunnel login
Cette commande va ouvrir une page web demandant quel nom de domaine vous souhaitez utiliser (parmi ceux gérés par votre compte Cloudflare).
Une fois choisi, cela va créer un fichier de certificat cert.pem
dans le répertoire %userprofile%\.cloudflared
.
Création d’un tunnel
- Créez un tunnel et donnez lui un nom avec la commande :
cloudflared tunnel create <NAME>
Exemple : cloudflared tunnel create localhost
Cette commande va créer un identifiant unique pour le tunnel, générer le fichier de credentials .json
et créer le sous domaine.
On peut voir la liste des tunnels avec la commande :
cloudflared tunnel list
Création du fichier de configuration
- Dans le répertoire
%userprofile%\.cloudflared
il faut créer un fichierconfig.yml
et le remplir comme suit :
{Tunnel-UUID}.
url: http://localhost:8000
tunnel:<Tunnel-UUID>
credentials-file: C:\Users\{username}\.cloudflared\json
en remplaçant <Tunnel-UUID>
par la valeur obtenue par la commande cloudflared tunnel list
et {username}
par votre utilisateur.
Démarrer le routage
- Démarrez le routage avec la commande :
cloudflared tunnel route dns <UUID ou nom> <hostname>
Exemple : cloudflared tunnel route dns localhost localhost.cheatsheet.fr
- On peut vérifier que tout fonctionne avec la commande :
cloudflared tunnel route ip show
Démarrer le tunnel
- On démarre le tunnel avec la commande :
cloudflared tunnel run <UUID ou nom>
Exemple : cloudflared tunnel run localhost
Vous pouvez préciser quel fichier de config utiliser avec le paramètre --config
:
cloudflared tunnel --config /path/your-config-file.yml run <UUID ou nom>
Vérifier le tunnel
- On vérifie l’état du tunnel avec la commande :
cloudflared tunnel info <UUID ou nom>