# Un tunnel Cloudflare pour montrer un site local à un client sans déployer

> Exposer temporairement un environnement de développement local via une URL publique sécurisée, pour une démonstration rapide sans mise en ligne.

- Auteur : Clément Hadrot
- Publié le : 2023-03-06
- Mis à jour le : 2023-03-06
- Catégorie : Outils &amp; workflow
- URL : https://wpmoderne.dev.wordpress-developpement.fr/outils/tunnel-cloudflare-montrer-site-local-client/

## L’essentiel

- Aucun port à ouvrir sur le pare-feu local
- URL publique HTTPS générée en une commande
- Le tunnel se ferme dès la commande interrompue

Un client demande à voir l'avancement d'un développement en cours, un vendredi en fin de journée, alors que rien n'a encore été poussé sur un environnement de staging. Déployer en urgence pour une simple visualisation de dix minutes semble excessif, et exposer directement sa machine de développement sur Internet en ouvrant un port sur le pare-feu et la box est une mauvaise idée à plus d'un titre. Cloudflare Tunnel (anciennement connu sous le nom Argo Tunnel) résout ce cas précis : une commande locale crée une connexion sortante chiffrée vers l'infrastructure Cloudflare, qui expose ensuite le site local via une URL publique en HTTPS, sans qu'aucun port entrant ne soit jamais ouvert sur le réseau local.

Ce mécanisme diffère fondamentalement d'une redirection de port classique : la connexion part toujours de la machine locale vers Cloudflare, jamais l'inverse, ce qui évite d'exposer directement l'adresse IP ou la configuration réseau du poste de développement.

## Installer cloudflared

```
brew install cloudflared
```

Sur Linux, un paquet `.deb` ou `.rpm` officiel est également disponible selon la distribution utilisée.

## Lancer un tunnel rapide, sans compte configuré

> L'essentiel à retenir : Aucun port à ouvrir sur le pare-feu local ; URL publique HTTPS générée en une commande ; Le tunnel se ferme dès la commande interrompue

Pour un usage ponctuel, sans configuration préalable ni compte Cloudflare associé au domaine, une commande unique suffit à générer une URL temporaire aléatoire :

```
cloudflared tunnel --url http://localhost:8080
```

La sortie affiche immédiatement une URL en `*.trycloudflare.com`, accessible depuis n'importe où, tant que la commande reste active dans le terminal :

```
+--------------------------------------------------------------------------------------------+
|  Your quick Tunnel has been created! Visit it at:                                            |
|  https://random-words-generated.trycloudflare.com                                            |
+--------------------------------------------------------------------------------------------+
```

## Une URL plus stable pour un usage répété

Pour une agence qui utilise régulièrement ce mécanisme, un tunnel nommé, rattaché à un domaine géré sur Cloudflare, évite de renvoyer une nouvelle URL aléatoire à chaque démonstration :

```
cloudflared tunnel login
cloudflared tunnel create demo-agence
cloudflared tunnel route dns demo-agence demo.agence-exemple.fr
cloudflared tunnel run --url http://localhost:8080 demo-agence
```

Cette configuration nommée demande un domaine géré sur Cloudflare, mais produit ensuite une URL fixe et mémorisable, réutilisable à chaque session de démonstration sans redistribution d'un nouveau lien.

## Points de vigilance

- Le tunnel expose exactement ce qui tourne en local, y compris les éventuelles données de test ou de contenu non finalisé : à ne jamais utiliser pour partager un environnement contenant des informations réellement sensibles sans protection supplémentaire.
- La fermeture du terminal ou l'arrêt de la commande coupe immédiatement l'accès : ce n'est pas fait pour un partage durable, seulement pour la durée d'une session active.
- Sans authentification supplémentaire (Cloudflare Access, par exemple), l'URL générée reste accessible à quiconque la connaît : à réserver à un partage ponctuel et maîtrisé, pas à une diffusion large.

## Face aux environnements de démonstration jetables par pull request

Ce mécanisme répond à un besoin différent des environnements éphémères générés automatiquement à chaque pull request sur une infrastructure de staging : le tunnel expose une machine de développement personnelle, à la demande, pour une durée courte et non planifiée, alors qu'un environnement de démonstration par pull request repose sur une infrastructure hébergée persistante, générée automatiquement à chaque changement de code et destinée à des revues plus formelles.

> Le tunnel Cloudflare répond à l'urgence d'un « montre-moi maintenant », pas à un besoin d'environnement de revue structuré et durable. Les deux usages ne se remplacent pas l'un l'autre.

## En résumé

Pour une démonstration impromptue d'un développement en cours, sans déploiement ni infrastructure de staging disponible dans l'instant, un tunnel Cloudflare offre une solution rapide, sécurisée par sa nature sortante uniquement, et sans configuration réseau à toucher sur la machine locale. C'est un outil de dépannage ponctuel, pas un substitut à un vrai environnement de démonstration structuré pour un usage récurrent.
