Comment héberger votre propre site Web avec Docker et Nginx Proxy Manager
Avez-vous déjà voulu gérer votre propre site web, mais détestez l'idée de payer des frais d'hébergement ? C'est là où je me suis récemment retrouvé, alors voici comment j'ai créé rapidement un site web en utilisant Docker, Nginx Proxy Manager et Ghost.
Que faut-il pour faire fonctionner un site web personnel ?
Gérer un site web personnel a quelques prérequis. Une fois que vous êtes opérationnel, vous devriez avoir un nom de domaine, un serveur pour héberger votre site web (qui peut même être un ancien ordinateur portable, un NUC ou un Raspberry Pi), Docker et quelques conteneurs déployés.
Tout d'abord, il y a le serveur pour héberger votre site web. Il n'a pas besoin d'être ultra-puissant, et cela peut même être un ordinateur que vous avez chez vous. Un Raspberry Pi, NUC, ancien bureau ou même un ancien portable pourraient parfaitement convenir à ce service. Vous avez juste besoin de quelque chose fabriqué dans les 15 dernières années qui peut encore faire fonctionner un système d'exploitation moderne (de préférence Linux, mais Windows ou macOS fonctionneront aussi).
Ensuite, il y a un nom de domaine. Vous pouvez acheter votre domaine partout, mais je recommanderais d'en trouver un qui prend en charge le DDNS de manière native, comme Cloudflare. Bien que vous obteniez une IP fixe en utilisant un serveur privé virtuel (VPS) ou une autre plateforme d'hébergement, lorsque vous hébergez votre site web à la maison, il y a de bonnes chances que votre IP change avec le temps. C'est là qu'un DDNS (DNS dynamique) entre en jeu. Essentiellement, au fur et à mesure que votre IP à la maison change, le DDNS met à jour l'enregistrement A de votre domaine pour le faire pointer vers votre nouvelle IP.
En plus d'un domaine et d'une configuration DDNS, vous aurez également besoin de Docker pour la méthode d'hébergement que je vais vous recommander ici. Docker est capable de faire tellement de choses, mais pour votre site web, nous aurons besoin d'un conteneur DDNS, d'un proxy inverse Nginx et, bien sûr, de votre site web lui-même.
Pour configurer le conteneur Docker DDNS de Cloudflare, vous aurez besoin d'une clé API pour Cloudflare qui peut modifier les enregistrements DNS pour le domaine spécifique que vous utiliserez, le domaine lui-même et tous les sous-domaines que vous souhaitez mettre à jour. Tout cela sera défini par des variables d'environnement dans Docker, ce qui facilitera le changement ou l'ajout de nouveaux sous-domaines et domaines à l'avenir.
Pour vous mettre rapidement en route, vous pouvez visiter un site comme Quel est mon adresse IP pour trouver votre IP publique. Allez-y et saisissez cette IP dans l'enregistrement A du domaine que vous souhaitez utiliser pour votre site web. Votre DDNS le mettra à jour si le domaine change, mais le saisir manuellement maintenant aidera simplement à accélérer les choses par la suite.
Nginx Proxy Manager gère vos besoins en matière de reverse proxy.
Le premier conteneur Docker à se lancer après votre DDNS sera Nginx Proxy Manager. Avec Nginx Proxy Manager, vous pourrez rediriger le trafic entrant vers le conteneur Docker de votre site web.
Nginx Proxy Manager est un proxy inverse. Il prend le trafic entrant sur les ports :80 et :443 (connexions non sécurisées et SSL) et les redirige ailleurs sur votre réseau. Vous devrez configurer le pare-feu de votre réseau pour rediriger les ports externes 443 et 80 vers ce à quoi ces ports sont mappés pour votre installation de Nginx Proxy Manager.
Une fois que vous avez le conteneur Docker Nginx Proxy Manager en marche avec vos ports redirigés, il est temps de configurer le routage. Commencez par naviguer vers les hôtes, puis cliquez sur ajouter un nouvel hôte. Vous verrez une fenêtre popup, et c'est là que vous allez entrer les informations pour votre site web. Il suffit de taper le domaine, l'adresse IP du serveur et le port sur lequel vous allez faire fonctionner le site. Le port peut être celui que vous voulez, et est généralement dicté par le logiciel que vous utilisez.
Par exemple, vous pourriez faire en sorte que blog.domaine.com soit redirigé vers 192.168.1.6:2368, ce qui serait l'IP de votre serveur avec le port Ghost à la fin. Chaque fois que quelqu'un visite blog.domaine.com, cela serait ensuite routé vers votre IP publique et ensuite Nginx Proxy Manager le dirigerait vers le conteneur approprié.
Non seulement Nginx Proxy Manager gère le routage, mais il s'occupe également des certificats SSL grâce à Let's Encrypt. Ces certificats SSL gratuits peuvent offrir à ceux qui naviguent sur votre blog une tranquillité d'esprit, ajoutant une couche supplémentaire de sécurité à la session de navigation. L'ensemble du processus SSL, du début à la fin, est aussi fluide dans Nginx Proxy Manager.
Une fois que vous êtes en mesure de configurer un proxy inversé, il est assez simple d’en configurer autant que vous le souhaitez. J'ai plus de 30 proxies inversés sur mon propre réseau, pour des services tels que Calibre Web, audiobookshelf, Tautulli, des serveurs Minecraft, un serveur Satisfactory, un serveur Ark Survival: Evolved, et bien plus encore.
Ghost est une plateforme de blogging simple qui est facile à utiliser.
Maintenant que vous avez presque tout configuré, il est temps d'installer Ghost.
Vous auriez pu vous attendre à ce que j'utilise WordPress, car il représente la majorité d'Internet. Alors que WordPress est excellent, et que je l'utilise depuis plus de 15 ans, Ghost est ce sur quoi je fais fonctionner mon propre blog personnel cette fois-ci. C'est léger, facile à utiliser et, honnêtement, juste plus simple que WordPress.
Ghost est conçu pour être un blog qui peut également avoir une composante de bulletin d'information. Les articles sont écrits en markdown (ma façon préférée d'écrire), et il existe plusieurs plugins pour certains des plus grands services, comme Instagram, Discord, MailChimp, YouTube, Patreon et d'autres.
Pour lancer Ghost, vous devrez faire quelques étapes. Nous allons commencer dans Nginx Proxy Manager. Allez-y et créez un nouvel hôte proxy avec votre nom de domaine dans le premier champ, laissez le schéma comme HTTP, saisissez ensuite l'adresse IP de votre serveur Docker, puis le port 2368.
Je vérifie généralement les options pour les actifs en cache, bloque les exploits courants et active le support des websockets. Passez à l'onglet SSL, en ignorant l'onglet des emplacements personnalisés. Ici, choisissez Demander un nouveau certificat SSL et acceptez les conditions, puis saisissez votre courriel. Cliquez sur enregistrer, et votre proxy inversé est configuré.
Maintenant, retournez à votre hôte Docker. Personnellement, j'utilise Portainer comme interface web pour Docker, mais comme tout se fait via Docker Compose, les fichiers de configuration sont identiques dans les deux cas.
Si vous voulez utiliser le même fichier Docker Compose que j'utilise pour mon blog Ghost, consultez mon dépôt GitHub homelab. Assurez-vous de remplacer le domaine par votre propre domaine, et changez également le mot de passe MySQL pour quelque chose de plus sécurisé.
Une fois que vous avez déployé le fichier Docker Compose, votre blog Ghost devrait être opérationnel à votre nouveau domaine!
Votre site Web est en ligne ! Et maintenant ?
Si tout a été fait correctement, et que vous avez configuré les paramètres de redirection de port sur votre routeur, alors vous devriez être en mesure d'accéder à votre nom de domaine que vous avez configuré et d'accéder à l'instance Ghost de l'extérieur.
Maintenant que votre site web est en ligne, quelle est la prochaine étape ? Eh bien, vous voudrez commencer par configurer le blog Ghost. Il existe de nombreuses vidéos sur YouTube et d'autres articles qui vous guident étape par étape sur ce qu'il faut faire. Je n'ai même pas encore complètement compris toutes les options de configuration.
À ce stade, votre site web est en ligne sur Internet et tout le monde peut y accéder. Vous voudrez peut-être mettre une page d'accueil pendant que vous y travaillez, ou simplement le laisser tel quel pendant sa construction. Commencez à publier des articles de blog, à envoyer des bulletins d'information par courriel, et profitez d'héberger votre propre site personnel sur un matériel chez vous, sans frais d'hébergement!
Lancer un blog complet n'est peut-être pas exactement ce que vous recherchez. Si c'est votre cas, alors le microblogage pourrait être exactement ce que vous cherchez. C'est légèrement différent du blogging traditionnel et c'est beaucoup plus facile à mettre en place puisque cela se fait généralement sur les réseaux sociaux, ce qui signifie qu'il n'y a pas de bases de données à configurer, pas de DDNS ou de proxies inverses à mettre en place, et c'est souvent gratuit !




