Comment héberger votre site Web avec Docker et Nginx Proxy Manager en quelques étapes simples
L'hébergement d'un site Web à l'aide d'outils modernes tels que Docker et Nginx Proxy Manager n'est plus limité aux développeurs professionnels. Vous pouvez désormais configurer votre propre serveur et lancer votre site Web en quelques minutes sans avoir à gérer des configurations complexes ou à payer des frais d'hébergement traditionnels. Dans ce guide, vous apprendrez les étapes exactes pour créer un environnement d'hébergement avec Docker, en utilisant Nginx Proxy Manager pour acheminer les domaines et en configurant automatiquement HTTPS, le tout de manière simplifiée et organisée.
Sommaire
- Un service comme Cloudflare DDNS met automatiquement à jour l'adresse IP de votre domaine avec votre adresse IP personnelle.
- Nginx Proxy Manager achemine le trafic et fournit des certificats SSL via Let's Encrypt, et est déployé dans Docker.
- Ghost est une plateforme de blogs facile à utiliser, prend en charge Markdown et les plugins, et est facile à déployer avec Docker.
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à que je me suis retrouvé récemment, alors voici comment j'ai créé un site Web rapide en utilisant Docker, Nginx Proxy Manager et Ghost.
De quoi avez-vous besoin pour gérer un site Web personnel ?
La gestion d’un site Web personnel nécessite certaines exigences de base. Lorsque vous commencez, vous aurez besoin d'un nom de domaine, d'un serveur pour héberger votre site (il peut s'agir d'un ancien ordinateur portable, d'un NUC ou d'un Raspberry Pi), de Docker et d'un certain nombre de conteneurs à utiliser.
Tout d’abord, le serveur sur lequel vous hébergerez votre site Web. Il n’est pas nécessaire qu’il soit super puissant, il peut s’agir d’un ordinateur domestique. Un Raspberry Pi, un NUC, un vieil ordinateur de bureau ou même un vieil ordinateur portable sont d’excellentes options pour ce service. Tout ce dont vous avez besoin est un appareil fabriqué au cours des 15 dernières années environ, exécutant un système d'exploitation moderne (Linux est préférable, mais Windows ou macOS fonctionneront également).
L’étape suivante est le nom de domaine. Vous pouvez acheter votre domaine n'importe où, mais je vous recommande de rechercher un serveur qui prend en charge nativement DDNS, comme Cloudflare. Bien que vous obteniez une adresse IP statique lorsque vous utilisez un serveur privé virtuel (VPS) ou une autre plate-forme d'hébergement, votre adresse IP est susceptible de changer au fil du temps lorsque vous hébergez votre site Web à domicile. C'est là qu'intervient le DDNS (Dynamic DNS). En termes simples, lorsque votre adresse IP personnelle change, le DDNS met à jour l'enregistrement A de votre domaine pour pointer vers la nouvelle adresse IP.
En plus de configurer le domaine et le service DDNS, vous aurez également besoin de Docker pour la méthode d'hébergement que je recommanderai ici. Docker est capable d'exécuter de nombreuses fonctionnalités, 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 créer un conteneur Cloudflare DDNS DockerVous aurez besoin d'une clé API Cloudflare qui vous permettra de modifier les enregistrements DNS du domaine que vous utiliserez, le domaine lui-même et tous les sous-domaines que vous souhaitez maintenir à jour. Tout cela sera contrôlé via les balises d’environnement Docker, ce qui facilitera la modification ou l’ajout de nouveaux sous-domaines et domaines à l’avenir.
Pour démarrer rapidement, vous pouvez visiter un site comme «Quelle est mon adresse IP ? Pour trouver votre adresse IP publique. Saisissez cette adresse IP dans l’enregistrement A du domaine que vous souhaitez utiliser pour votre site Web. Le serveur DDNS gardera cette adresse à jour si le domaine change, mais la saisir manuellement maintenant aidera à accélérer les choses plus tard.
Nginx Proxy Manager répond à vos besoins en matière de proxy inverse.
Sera Gestionnaire de proxy Nginx Le premier conteneur Docker à s'exécuter après votre serveur DDNS. En utilisant le gestionnaire de proxy Nginx, vous pourrez acheminer le trafic entrant vers le conteneur Docker de votre site Web.
Nginx Proxy Manager est un proxy inverse. Il reçoit les données entrantes sur les ports : 80 et : 443 (connexions non sécurisées et SSL) et les redirige vers un autre emplacement sur votre réseau. Vous devrez configurer votre pare-feu réseau pour transférer les ports externes 443 et 80 vers deux ports associés à votre installation du gestionnaire de proxy Nginx.
Après avoir exécuté le conteneur Docker Nginx Proxy Manager avec redirection de port, il est temps de configurer le routage. Commencez par aller dans Hôtes, puis cliquez sur « Ajouter un nouvel hôte ». Une fenêtre contextuelle apparaîtra, dans laquelle vous pourrez saisir les informations de votre site Web. Entrez simplement le domaine, l'adresse IP du serveur et le port sur lequel vous exécuterez le site Web. Vous pouvez choisir n'importe quel port, il est généralement déterminé par le logiciel utilisé.
Par exemple, vous pouvez pointer blog.domain.com vers 192.168.1.6:2368, qui est l'adresse IP de votre serveur avec un port Ghost à la fin. Lorsque quelqu'un visite blog.domain.com, il sera dirigé vers votre adresse IP publique, puis le gestionnaire de proxy Nginx le dirigera vers le conteneur approprié.
Nginx Proxy Manager gère non seulement le routage mais gère également les certificats SSL via Let's Encrypt. Ces certificats SSL gratuits offrent aux visiteurs de votre blog une tranquillité d'esprit, ajoutant une couche de sécurité supplémentaire à leur session de navigation. De plus, l'ensemble du processus SSL, du début à la fin, est très fluide dans Nginx Proxy Manager.
Une fois que vous pouvez configurer un proxy inverse, il est très facile de configurer autant de proxys que vous le souhaitez. J'ai plus de 30 proxys inverses sur mon réseau, pour des services comme Calibre Web, audiobookshelf, Tautulli, les serveurs Minecraft, le serveur Satisfactory, le serveur Ark Survival: Evolved et bien d'autres.
Ghost est une plateforme de blogs simple et facile à utiliser.
Maintenant que vous avez presque tout configuré, il est temps d'installer Ghost.
Vous avez peut-être deviné que j'utiliserais WordPress, il alimente la majeure partie d'Internet. Bien que WordPress soit génial et que je l'utilise depuis plus de 15 ans, Ghost est celui sur lequel je gère mon blog personnel cette fois-ci. Il est léger, facile à utiliser et, franchement, plus simple que WordPress.
Ghost Conçu pour être un blog pouvant également contenir un composant de newsletter. Les articles sont écrits en utilisant Markdown (ma méthode d'écriture préférée), et il existe de nombreux plugins pour certains des plus grands services disponibles, tels qu'Instagram, Discord, MailChimp, YouTube, Patreon, etc.
Pour exécuter Ghost, vous devrez suivre quelques étapes. Nous commencerons avec Nginx Proxy Manager. Créez un nouvel hôte proxy avec votre nom de domaine dans le premier champ, laissez Système sur HTTP, puis entrez l'adresse IP du serveur Docker, suivie du port 2368.
Je vérifie généralement les paramètres de mise en cache, le blocage des exploits courants et la prise en charge des WebSockets. Accédez à l’onglet SSL, puis à l’onglet Sites personnalisés. Ici, sélectionnez « Demander un nouveau certificat SSL », acceptez les conditions, puis saisissez votre adresse e-mail. Cliquez sur « Enregistrer » et votre proxy inverse est maintenant configuré.
Maintenant, revenez à votre hôte Docker. J'utilise personnellement Portainer comme interface graphique Web pour Docker, mais comme tout se fait via Docker Compose, les fichiers de configuration sont identiques dans les deux cas.
Si vous souhaitez utiliser le même fichier Docker Compose que j'utilise pour le blog Ghost, visitez le référentiel GitHub de Homelab. Assurez-vous de changer le domaine pour le vôtre et de changer également votre mot de passe MySQL pour quelque chose de plus sécurisé.
Une fois le fichier Docker Compose publié, votre blog Ghost sera prêt à être utilisé sur votre nouveau domaine !
Votre site Web est opérationnel ! Et maintenant ?
Si tout s'est bien passé et que vous avez correctement configuré les paramètres de redirection de port sur votre routeur, vous pourrez accéder au nom de domaine que vous avez configuré et accéder à votre instance Ghost en externe.
Maintenant que votre site Web est opérationnel, quelle est la prochaine étape ? Eh bien, vous devrez commencer par configurer votre blog Ghost. Il existe de nombreuses vidéos YouTube et d'autres articles qui expliquent étape par étape ce qu'il faut y faire. Je n'ai pas encore compris toutes les options de configuration.
À ce stade, votre site Web est en ligne et tout le monde peut y accéder. Vous souhaiterez peut-être créer une page de destination pendant que vous y travaillez, ou la laisser telle quelle pendant que vous la créez. Commencez à publier des articles de blog, à envoyer des newsletters par e-mail et profitez de l'hébergement de votre site Web personnel sur un appareil chez vous, gratuitement !
Créer un blog à part entière n’est peut-être pas exactement ce que vous recherchez. Si tel est le cas, le microblogging pourrait être ce que vous recherchez. C'est un peu différent du blogging traditionnel, et beaucoup plus facile à mettre en place car cela se fait généralement sur les réseaux sociaux, ce qui signifie que cela ne nécessite pas de bases de données à configurer, de DDNS ou de proxys inverses à configurer, et c'est souvent gratuit !
Avec Docker et Nginx Proxy Manager, vous pouvez transformer une simple machine en un serveur Web professionnel capable d'exécuter vos sites Web de manière stable et sécurisée. Après avoir suivi les étapes ci-dessus, vous pourrez avoir un contrôle total sur votre environnement d’hébergement sans avoir besoin d’un fournisseur externe. N'hésitez pas à étendre le système ultérieurement en ajoutant de nouvelles règles de routage ou en intégrant des services supplémentaires tels que des bases de données ou des outils de surveillance. Le début peut paraître technique, mais le résultat vous donne une plus grande liberté et un contrôle complet sur votre site.