Hébergez un site de façon sûre avec Raspberry Pi et Cloudflare

Si vous cliquez sur nos liens et effectuez un achat, nous pouvons recevoir une commission d'affiliation. En savoir plus

J’ai toujours aimé l’idée d’héberger mon propre site web chez moi, mais toucher aux réglages du routeur et exposer mon IP ? Non merci. C’est pourquoi j’ai essayé Cloudflare Tunnel avec mon Raspberry Pi. Honnêtement, c’est beaucoup plus facile et sûr que je ne le pensais. Laissez-moi vous montrer comment ça fonctionne !

Un site web peut être auto-hébergé en toute sécurité sur un Raspberry Pi en faisant fonctionner un serveur web local et en l’exposant via un Cloudflare Tunnel. La connexion chiffrée au réseau Cloudflare permet un accès mondial sans ouvrir de ports sur le routeur ni révéler l’adresse IP de la maison.

Dans ce tutoriel, je vais vous guider à travers chaque étape, de l’installation des logiciels nécessaires à la configuration de votre site web. Vous pouvez héberger ce que vous voulez : que ce soit un simple blog WordPress ou un système de commerce électronique complet, c’est le même processus.

Si vous débutez avec Raspberry Pi ou Linux, j’ai quelque chose qui peut vous aider !
Téléchargez ma fiche mémo des commandes Linux gratuitement – c’est un guide de référence rapide avec toutes les commandes essentielles dont vous aurez besoin utiliser votre Raspberry Pi. Cliquez ici pour l’obtenir gratuitement !

Aperçu de l’auto-hébergement avec Cloudflare Tunnel

Quand nous parlons d’auto-hébergement, nous voulons dire faire fonctionner un site web directement sur votre Raspberry Pi — sans dépendre de services d’hébergement en ligne pour le rendre accessible aux autres. Normalement, pour que les utilisateurs atteignent votre site, vous devriez l’héberger sur des plateformes comme GoDaddy, Namecheap ou d’autres hébergeurs web traditionnels.

Avec l’auto-hébergement, vous avez le contrôle total et servez le site directement depuis votre propre matériel. Dans le passé, je comptais personnellement sur Ngrok. Ngrok fonctionne bien et est super pour des démos rapides, mais son principal inconvénient est qu’il crée un tunnel externe direct vers votre appareil. Cela fonctionne un peu comme un port exposé, ce qui peut augmenter les risques de sécurité – surtout si vous prévoyez d’héberger quelque chose à long terme.

Mais maintenant, j’ai découvert Cloudflare Tunnel, que je pense être une bien meilleure solution.

Pourquoi Cloudflare Tunnel change la donne

Pour mieux comprendre comment tout cela fonctionne, voyez Cloudflare comme l’« intermédiaire » qui garde votre Raspberry Pi caché de l’Internet public.

Et c’est la partie la plus intéressante. Cloudflare Tunnel ne nécessite pas du tout de redirection de port sur le routeur. Vous n’avez pas besoin d’ouvrir le port 80, le port 443 ou tout autre port sur votre réseau domestique. Votre Raspberry Pi reste en sécurité derrière votre routeur et votre pare-feu.

Télécharger mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant

Au lieu de cela, Cloudflare crée un tunnel sécurisé et chiffré de votre Raspberry Pi directement vers son réseau mondial. Votre appareil reste en sécurité derrière votre pare-feu.

Voici ce qui se passe réellement : lorsque quelqu’un visite votre site (comme testsite.raspberrytips.com), sa requête ne vient pas directement chez vous. Elle passe d’abord par le réseau de Cloudflare. Cloudflare envoie ensuite cette requête par le tunnel chiffré vers votre Raspberry Pi.

Votre Raspberry Pi traite la requête, renvoie la réponse par le même tunnel sécurisé, et Cloudflare la livre au visiteur. Tout le processus est fluide, rapide et évite complètement les risques liés au fait d’exposer votre IP domestique ou d’ouvrir des ports sur le routeur.

Exigences matérielles

Voici le matériel dont vous aurez besoin pour ce projet :

  • Carte Raspberry Pi : Le modèle que vous choisissez dépend des besoins de votre site web. Si votre projet nécessite plus de puissance de traitement, comme pour faire fonctionner WordPress, gérer un trafic important ou servir du contenu dynamique, alors un Raspberry Pi 4 ou Raspberry Pi 5 est fortement recommandé.
    Pour des projets plus légers ou des sites web statiques simples, des modèles plus anciens comme le Raspberry Pi 3B+ ou même le Raspberry Pi Zero fonctionneront très bien.
  • Carte microSD : Vous aurez besoin d’une carte microSD d’au moins 8 Go, bien que la taille idéale dépende du système d’exploitation que vous prévoyez d’installer.
  • Connexion Internet fiable : Vous aurez vraiment besoin d’une connexion Internet stable avec une vitesse de téléchargement constante. Comme les utilisateurs accéderont à votre site à distance, une connexion faible ou instable peut ralentir ou rendre votre site inaccessible.
  • Périphériques facultatifs : Si vous n’accédez pas à votre Raspberry Pi à distance, soit via SSH ou VNC, alors vous aurez besoin d’un clavier, d’une souris et d’un moniteur HDMI pour la configuration.

Exigences logicielles

  • Système d’exploitation installé : Pour ce projet, vous n’êtes pas limité à Raspberry Pi OS ; vous pouvez utiliser n’importe quelle distribution Linux qui prend en charge les processeurs ARM.
  • Cloudflared (client Cloudflare Tunnel) : Le logiciel qui connecte votre Raspberry Pi au réseau de Cloudflare. Il crée un tunnel sécurisé qui permet aux utilisateurs d’accéder à votre site sans exposer votre IP domestique.
  • Logiciel de serveur web (par exemple, Apache, Nginx) : Vous aurez besoin d’un serveur web pour servir les fichiers de votre site. Apache est convivial pour les débutants, tandis que Nginx est léger et excellent pour les performances sur des appareils à faible consommation.
  • Votre plateforme de site web (par exemple, WordPress, site statique ou application personnalisée) : Cela dépend de ce que vous voulez héberger. Cela peut être quelque chose de simple comme un site HTML statique, une installation complète de WordPress, ou même une application personnalisée que vous avez créée avec Python, Node.js ou React.

Configurer votre site web

Avant de configurer Cloudflare Tunnel, il est important de comprendre quel type de site web vous faites fonctionner et quel port il utilise. Cloudflare a besoin de cette information pour savoir exactement où rediriger le trafic sur votre Raspberry Pi.

Il y a généralement deux scénarios courants :

Scénario 1 : vous utilisez WordPress (Port 80)

Si vous avez installé WordPress sur votre Raspberry Pi, alors votre site est probablement servi par Apache ou Nginx, généralement depuis :
/var/www/html

Dans ce cas, votre serveur web fonctionne sur le port 80, ce qui signifie que votre Raspberry Pi sert le site localement depuis :
http://localhost/80

Et si vous voulez un petit rappel sur le fonctionnement d’Apache, PHP et MySQL ensemble sur le Raspberry Pi, vous pouvez consulter notre guide complet de configuration de serveur LAMP – il vous guide à travers toutes les étapes.

Donc, lorsque vous configurez votre Cloudflare Tunnel, vous devrez le pointer vers le port 80, car c’est là que WordPress fonctionne réellement.

Scénario 2 : vous avez créé un site web ou une application web personnalisée (port différent)

Si vous avez développé votre propre site ou application, peut-être en utilisant Node.js, Python, ou un serveur de développement frontend comme Vite, React, ou Flask (en anglais), votre application peut fonctionner sur un port complètement différent, comme 3000, 5000, 5173, ou tout autre port que vous avez configuré.

Dans ce cas, votre Cloudflare Tunnel doit pointer vers ce port précis, afin que le trafic entrant soit correctement dirigé vers votre application.

Télécharger mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant

Astuce : Pour ce tutoriel, je garde les choses simples. J’ai créé un site web HTML/CSS de base et l’ai placé dans le répertoire /var/www/html, ce qui signifie qu’il fonctionne sur le port 80.

Créer un compte Cloudflare

À présent, je suppose que votre site est opérationnel sur votre Raspberry Pi. Maintenant, plongeons dans la configuration de Cloudflare sur votre Raspberry Pi.

La première chose à faire est d’aller sur le site officiel de Cloudflare, de créer un compte si vous n’en avez pas, et d’ajouter votre domaine. Je vais être honnête à propos de cette étape ; c’est assez facile, mais naviguer dans les différents menus de Cloudflare peut parfois être déroutant. Laissez-moi donc décomposer cela étape par étape.

  1. Créez un compte avec Cloudflare. Ici, vous avez plusieurs options à choisir. Cela inclut Google, Apple, Email, et même GitHub.
  2. Après vous être connecté, cliquez sur le bouton ADD dans le menu en haut comme montré dans l’image ci-dessous.
  3. Après avoir ajouté votre domaine, Cloudflare affichera des boutons radio demandant comment vous souhaitez importer vos enregistrements DNS. D’après mon expérience, je recommande de choisir « Quick scan for DNS records« . C’est l’option suggérée et cela vous fera gagner beaucoup de temps.
    Une fois terminé, cliquez sur « Continue » en bas.
  4. À l’étape suivante, sélectionnez le plan tarifaire que vous souhaitez utiliser. Pour ce tutoriel, je suggère de commencer avec le « Plan gratuit » et de passer à un plan payant plus tard.
  5. Ensuite, vous arriverez sur une page avec un guide étape par étape sur la façon de mettre à jour vos serveurs de noms de domaine pour pointer vers ceux fournis par Cloudflare. À ce stade, vous remarquerez en fait une notification orange en haut avec le message « serveurs de noms invalides ».

    Pour corriger cette erreur, suivez les étapes fournies, et une fois terminé, cliquez sur « Check Nameserves Now » en bas.

    Astuce : Cloudflare attribue des serveurs de noms uniques à chaque domaine. Utilisez toujours les serveurs de noms exacts indiqués dans vos instructions de configuration Cloudflare.
  6. Après avoir mis à jour vos serveurs de noms, Cloudflare vérifiera le changement. Une fois que tout est correct, vous verrez le statut « Actif » en haut, tout comme dans l’image ci-dessous.

C’est tout, vous avez réussi à ajouter votre domaine à Cloudflare. Maintenant, retournons au Raspberry Pi pour installer et configurer le Cloudflare Tunnel.

Installer et configurer Cloudflare Tunnel

Cloudflare Tunnel crée un lien sécurisé et chiffré de votre Raspberry Pi à Cloudflare, permettant aux utilisateurs d’accéder à votre site auto-hébergé sans ouvrir de ports sur le réseau local.

Dans cette section, je vais vous donner un guide étape par étape pour installer et configurer le tunnel Cloudflare sur votre Raspberry Pi.

  • Tout d’abord, téléchargez le dernier paquet .deb de Cloudflared pour Raspberry Pi en exécutant cette commande :
    wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm.deb
  • Une fois le téléchargement terminé, installez le paquet avec dpkg pour que votre Raspberry Pi puisse exécuter Cloudflared :
    sudo dpkg -i cloudflared-linux-arm.deb
  • Vérifiez que Cloudflared est installé correctement et consultez la version pour confirmer que tout fonctionne :
    cloudflared -v
  • Ensuite, connectez-vous à votre compte Cloudflare depuis le Raspberry Pi pour le lier à votre tableau de bord Cloudflare. Exécutez la commande ci-dessous :
    cloudflared login
    Cela affichera une URL dans votre terminal. Ouvrez ce lien dans votre navigateur pour connecter le domaine que vous avez ajouté à Cloudflare.
    Dans votre navigateur, vous serez invité à choisir le domaine que vous souhaitez lier. Sélectionnez votre domaine, et une fenêtre contextuelle apparaîtra vous demandant d' »Autoriser ». Approuvez-le pour terminer la connexion.
    Si tout s’est bien passé et que vous n’avez rencontré aucune erreur, vous devriez voir une fenêtre contextuelle « succès » similaire à l’image ci-dessous.

    Une fois terminé, Cloudflare générera un certificat pour vous, qui sera ajouté à /home/username/.cloudflared/cert.pem.
  • Ensuite, vous devez créer un tunnel pour votre site web en exécutant la commande ci-dessous. Assurez-vous d’utiliser un nom unique au cas où un autre tunnel serait déjà en cours d’exécution.
    cloudflared tunnel create your-tunnel-name
    Par exemple, dans mon cas, j’utiliserai :
    cloudflared tunnel create my-rasp-site
    Cela créera un nouveau tunnel avec un ID unique. Veuillez copier cet ID et le coller quelque part, car nous en aurons besoin plus tard.
  • Ensuite, vous allez créer un fichier de configuration pour gérer le tunnel. C’est ici que nous allons ajouter des choses comme les numéros de port que le site utilise, et même les domaines et sous-domaines. Exécutez la commande ci-dessous.
    sudo nano ~/.cloudflared/config.yml
    Copiez et collez les détails ci-dessous. Pensez bien à changer certains détails en conséquence. Comme le répertoire personnel, l’ID du tunnel, le nom de domaine et le port du service.
tunnel: 74ec7ff1-dcc1-4b53-8788-a6a2e1480da9
credentials-file: /home/pat/.cloudflared/74ec7ff1-dcc1-4b53-8788-a6a2e1480da9.json

ingress:
- hostname: your-domain.com
service: http://localhost:80

- service: http_status:404
  • Ensuite, vous allez créer l’entrée DNS qui lie votre tunnel à votre domaine en exécutant la commande ci-dessous :
    cloudflared tunnel route dns mywpsite yourdomain.com
    Cloudflared créera automatiquement l’enregistrement CNAME correct pour vous — pas besoin d’éditer manuellement les DNS.
  • Une fois terminé, démarrez le tunnel en utilisant la commande ci-dessous :
    cloudflared tunnel run mywpsite

À moins que le tunnel ne s’arrête à cause d’une erreur inattendue, tout devrait maintenant fonctionner correctement, et vous avez terminé.

Tester votre site web avec Cloudflare Tunnel

Maintenant que votre tunnel est opérationnel, il est temps de s’assurer que tout fonctionne comme prévu. Ouvrez votre navigateur et allez sur le domaine ou le sous-domaine que vous avez lié à votre Raspberry Pi.

Dans mon cas, vous pouvez voir ci-dessous que mon site s’est bien chargé, confirmant que le tunnel fonctionne parfaitement.

Si tout a été configuré correctement, vous devriez voir votre site se charger comme il le ferait sur un serveur normal. Cela confirme que le Cloudflare Tunnel redirige bien le trafic d’Internet vers votre Raspberry Pi.

Si le site ne se charge pas, vérifiez votre config.yml, assurez-vous que le tunnel fonctionne et vérifiez que les bons ports sont ouverts sur votre Raspberry Pi.

Je crois que c’est tout pour le moment. Le Cloudflare Tunnel facilite l’exposition de votre site hébergé sur Raspberry Pi à Internet. Une fois votre tunnel opérationnel, votre site est accessible de n’importe où tout en restant protégé derrière le réseau de Cloudflare.

Gardez à l’esprit que cette configuration est idéale pour les tests, les projets personnels ou l’apprentissage, mais elle n’est pas recommandée pour les sites web de production ou à fort trafic, car un Raspberry Pi et un réseau domestique peuvent ne pas gérer un trafic important de manière fiable.

Télécharger mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant

Rappel: J'ai crée une communauté d'utilisateurs de Raspberry Pi qui vous permet de partage vos avancées, poser vos questions et recevoir de nombreux avantages exclusifs (anglophones uniquement). Cliquez sur le lien pour en savoir plus.

FAQ

Mon site restera-t-il en ligne si mon Raspberry Pi s’éteint ?

Non. Puisque votre Raspberry Pi est le serveur hébergeant votre site, s’il s’éteint ou perd la connectivité, le site sera hors ligne. Le tunnel a besoin que votre Pi reste allumé et connecté à Internet.

Ai-je besoin d’une adresse IP statique pour auto-héberger un site web avec Cloudflare Tunnel ?

Non. Un des avantages de Cloudflare Tunnel est qu’il fonctionne même avec une IP dynamique. Cloudflare gère le routage externe, donc vous n’avez pas à vous soucier des changements d’adresses IP à la maison.

Puis-je utiliser Cloudflare Tunnel pour plusieurs sites web ou sous-domaines ?

Oui. Vous pouvez configurer le tunnel pour rediriger le trafic vers plusieurs sites ou sous-domaines en ajoutant des entrées de nom d’hôte supplémentaires dans votre config.yml. Chaque site ou sous-domaine peut avoir sa propre adresse de service locale sur votre Raspberry Pi.

Télécharger mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant

Ressources supplémentaires pour votre Raspberry Pi

Initiation au Raspberry Pi en vidéo
Si vous débutez et voulez passer rapidement à la vitesse supérieure, j’ai exactement ce qu’il vous faut.
Regardez ma formation vidéo qui vous aidera à démarrer du bon bien, choisir votre matériel, installer les meilleures applications et vous lancer directement dans vos premiers projets avec mon aide.
Regarder les vidéos dès maintenant

Maîtrisez votre Raspberry Pi en 30 jours
Vous avez besoin de plus ? Si vous êtes à la recherche des meilleures astuces pour devenir expert sur Raspberry Pi, ce livre est fait pour vous. Développez vos compétences sous Linux et pratiquez via de nombreux projets en suivant mes guides étape par étape. 10% de remise aujourd’hui !
Télécharger le livre au format PDF ici

Maîtrisez Python sur Raspberry Pi
Pas besoin d’être un génie pour coder quelques lignes pour votre Raspberry Pi.
Je vous apprends juste ce qu’il faut sur Python afin de réaliser n’importe quel projet. La seconde partie du livre est d’ailleurs consacrée à des exemples de projets où je vous guide pas à pas.
Ne perdez pas de temps, apprenez le strict nécessaire et économisez 10% avec ce lien :
Télécharger maintenant

Autres ressources pour profiter de votre Raspberry Pi
J’ai regroupé toutes mes recommandations de logiciels, sites utiles et de matériel sur cette page de ressources. Je vous invite à la consulter régulièrement pour faire les bons choix et rester à jour.
Visiter les pages ressources


Ce tutoriel ne marche plus à 100%? Prévenez-moi pour que je le mette à jour!

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *