Comment exposer une application interne comme Uptime Kuma via Cloudflare Tunnel, sans IP publique ni port forwarding – depuis TrueNAS, Linux ou n’importe quel serveur.
Table of Contents
Introduction
L’accès à des applications internes comme Uptime Kuma, Grafana, ou Portainer peut poser un défi lorsqu’on utilise une connexion 4G/5G ou un réseau NATé (CGNAT).
Le port forwarding est souvent impossible, notamment sur certaines box opérateurs.
👉 La solution : Cloudflare Tunnel (anciennement Argo Tunnel), un service gratuit qui crée un tunnel chiffré entre votre machine locale et l’infrastructure Cloudflare.
Aucune IP publique n’est nécessaire, et vous bénéficiez d’un accès HTTPS sécurisé, stable et intégré à votre domaine Cloudflare.
🔒 Qu’est-ce que Cloudflare Tunnel ?
Cloudflare Tunnel permet de publier une application locale vers Internet en toute sécurité.
Le client cloudflared crée une connexion sortante vers Cloudflare, et Cloudflare s’occupe de tout le reste :
- Pas besoin d’ouvrir de port sur votre box.
- Accès HTTPS automatique.
- Compatible avec les sous-domaines Cloudflare (ex.
kuma.mondomaine.fr). - Authentification possible via Access (option entreprise).
🧰 Pré-requis
- Un serveur Linux ou TrueNAS (Debian-based).
- Un compte Cloudflare et un domaine géré sur Cloudflare DNS.
- Une application locale accessible (ex.
http://localhost:3001pour Uptime Kuma).
⚙️ Étape 1 : Installer cloudflared
Sur votre machine (exemple : TrueNAS SCALE, Debian, Ubuntu) :
cd ~
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o cloudflared
chmod +x cloudflared
Testez :
./cloudflared --version
🪪 Étape 2 : Authentifier votre client
Connectez cloudflared à votre compte Cloudflare :
./cloudflared login
Une page s’ouvre dans votre navigateur.
Sélectionnez votre domaine Cloudflare (ex. mondomaine.fr).
Un fichier de certificat cert.pem sera créé dans ~/.cloudflared/.
🏗️ Étape 3 : Créer un tunnel nommé
Créez un tunnel persistant nommé “uptimekuma” :
./cloudflared tunnel --origincert ~/.cloudflared/cert.pem create uptimekuma
Résultat attendu :
Tunnel credentials written to /home/admin/.cloudflared/<UUID>.json
Created tunnel uptimekuma with ID <UUID>
🌍 Étape 4 : Relier le tunnel à votre domaine Cloudflare
Associez votre tunnel à un sous-domaine (ex. kuma.mondomaine.fr) :
./cloudflared tunnel route dns uptimekuma kuma.mondomaine.fr
Vous verrez :
Added CNAME kuma.mondomaine.fr which will route to this tunnel
🧾 Étape 5 : Créer la configuration du tunnel
Fichier ~/.cloudflared/config.yml :
tunnel: uptimekuma
credentials-file: /home/admin/.cloudflared/<UUID>.json
ingress:
- hostname: kuma.mondomaine.fr
service: http://localhost:3001
- service: http_status:404
Remplacez
<UUID>.jsonpar le vrai nom du fichier généré à l’étape 3.
⚙️ Étape 6 : Créer un service systemd (mode user-level)
Sur TrueNAS SCALE (ou Linux sans accès root), créez :
mkdir -p ~/.config/systemd/user
nano ~/.config/systemd/user/cloudflared-uptimekuma.service
Contenu :
[Unit]
Description=Cloudflare Tunnel (uptimekuma)
After=network-online.target
[Service]
ExecStart=%h/cloudflared tunnel --config %h/.cloudflared/config.yml run
Restart=always
StandardOutput=append:%h/cloudflared.log
StandardError=append:%h/cloudflared.log
[Install]
WantedBy=default.target
Activez le linger pour permettre le démarrage automatique :
sudo loginctl enable-linger admin
Rechargez et démarrez :
systemctl --user daemon-reload
systemctl --user enable --now cloudflared-uptimekuma
Vérifiez :
systemctl --user status cloudflared-uptimekuma
tail -n 20 ~/cloudflared.log
✅ Résultat
- Votre instance Uptime Kuma est désormais accessible via :
https://kuma.mondomaine.fr - Le certificat SSL est automatiquement géré par Cloudflare.
- Le tunnel se relance automatiquement à chaque redémarrage.
- Aucun port n’a besoin d’être ouvert sur votre réseau.
🔒 Sécuriser l’accès avec Cloudflare Access (optionnel)
Cloudflare permet de restreindre l’accès à vos tunnels avec Cloudflare Zero Trust Access.
Vous pouvez, par exemple, exiger une authentification Google ou GitHub pour accéder à kuma.mondomaine.fr, sans aucune configuration côté serveur.
Activez cette protection depuis :
https://one.dash.cloudflare.com/
⚡ Bonus : affichage automatique du lien tunnel
Pour les tunnels temporaires trycloudflare.com, vous pouvez afficher l’URL avec :
grep -Eo 'https://[a-zA-Z0-9.-]+\.trycloudflare\.com' ~/cloudflared.log | tail -1
🧠 Avantages du Cloudflare Tunnel
| Avantage | Description |
|---|---|
| 🚫 Aucun port ouvert | Fonctionne derrière NAT, 4G, CGNAT |
| 🔒 HTTPS automatique | Certificat SSL Cloudflare inclus |
| 🧩 DNS intégré | Gestion native via Cloudflare |
| 🔁 Résilient | Auto-reconnexion, tolérance réseau |
| 🧑💼 SSO & WAF | Intégration avec Cloudflare Access et Firewall |
| 💰 Gratuit | Pas de coût pour un usage personnel |
🧰 Cas d’usage typiques
- Exposer Uptime Kuma, Portainer, Home Assistant, Grafana sans IP publique.
- Fournir un accès externe à un NAS TrueNAS sécurisé via HTTPS.
- Déployer un site de monitoring interne accessible depuis l’extérieur.
🚀 Conclusion
Avec Cloudflare Tunnel, publier une application interne devient simple, sécurisé et gratuit.
Que vous soyez derrière une box 4G, un réseau universitaire ou une DMZ verrouillée, vous pouvez exposer vos services locaux sans jamais toucher à vos ports ni à votre pare-feu.
👉 En quelques commandes, vous transformez votre serveur TrueNAS ou Linux en une passerelle HTTPS fiable, directement intégrée à votre domaine Cloudflare.
Mots-clés SEO :Cloudflare Tunnel, Argo Tunnel, Uptime Kuma, TrueNAS, DNS Cloudflare, tunnel HTTPS, reverse proxy Cloudflare, CGNAT, port forwarding 4G, héberger service local Cloudflare.


