Si vous auto-hébergez (ou si vous souhaitez auto-héberger) votre site web chez vous, sur votre serveur personnel, vous avez sûrement dû tomber sur une problématique : vous disposez d'une adresse IP dynamique.
De nombreux fournisseurs d'accès à Internet ne fournissent qu'une IP (IPV4) dynamique à leurs clients particulier. Seuls les clients professionnel ont droit à une IP fixe. C'est le cas par exemple d'Orange. C'est problématique car en cas de redémarrage de la box, l'adresse IP change. D'autant plus que des mises à jour sont effectuées à certains moments la nuit, ce qui nécessite un redémarrage automatique de celle-ci. Dans ce cas là, si vous auto-hébergez votre site web, celui-ci sera HS.
Une façon de faire est d'utiliser un service de type DynDNS (les box opérateur proposent ce paramétrage) : le problème est que vous obtiendrez un domaine du type [nom].noip.com ou autre, il faut payer pour pouvoir utiliser son propre nom de domaine.
Il existe une autre façon de faire, utilisant Cloudflare, et qui ne nécessite pas la version payante du service. Si vous utilisez déjà ce service pour héberger votre site web, c'est parfait.
Le but ici est de modifier en temps réel votre IP sur les DNS de votre site sur Cloudflare. Comme Cloudflare proxifie votre site, vos visiteurs ne verront que l'IP de Cloudflare et ne verront pas votre IP. De plus, il n'y a pas de problèmes avec les TTL (Time To Live) DNS : la modification est instantanée.
Pour cela, nous allons utiliser une image Docker très simple à configurer, cloudflare-ddns.
Configuration du fichier Docker Compose
Vous pouvez utiliser le fichier Docker Compose suivant pour créer le container Docker :
version: "3"
services:
cloudflare:
image: joshava/cloudflare-ddns:latest
container_name: cloudflare_ddns
restart: unless-stopped
volumes:
- ./config.yaml:/app/config.yaml
Sauvegardez ce contenu dans un fichier docker-compose.yml
.
Configuration de l'image
Nous allons ensuite créer le fichier de configuration nécessaire. Mais avant, vous aurez besoin de créer des clés API sur votre compte Cloudflare.
Connectez-vous à votre compte Cloudflare, puis rendez-vous dans Mon profil
Rendez-vous ensuite dans la section Jetons API, puis cliquez sur Créer un jeton
Sur la page qui va s'ouvrir, défilez tout en bas et cliquez sur Commencer en face de Créer un jeton personnalisé
Entrez ensuite les données suivantes, puis validez :
Un fois cela fait, votre token sera affiché : copiez le quelque part, nous en aurons besoin pour configurer cloudflare-ddns
Une fois cela fait, nous pouvons créer le fichier de configuration dont voici un example
auth:
scopedToken: COPIEZ_ICI_VOTRE_TOKEN
domains:
- name: mondomain.com
type: A
proxied: true
create: false
zoneName: mondomain.com
Dans ce fichier de configuration, copiez d'abord le token récupéré tout à l'heure, puis entrez les différents domaines pour lesquels vous souhaitez mettre à jour automatiquement l'IP sous la section domains
.
zone
correspond au domaine de premier niveau que vous avez enregistré sous Cloudflare (exemple : eliastiksofts.com
)
name
correspond à votre nom domaine ou sous-domaine (par exemple : www.eliastiksofts.com
), tel qu'affiché dans l'onglet DNS de votre zone
Sauvegardez votre configuration dans un fichier config.yaml
, dans le même dossier que le fichier docker-compose.yml
.
Une fois cela fait, lancer la création du container avec la commande docker-compose up -d
Vérfiez les logs pour voir si tout fonctionne correctement avec la commande docker container logs cloudflare_ddns
Après environ 5 minutes, vous devriez avoir des logs de ce style :
2022-04-28T16:40:02.079Z [info] Cloudflare DDNS start
2022-04-28T16:40:04.530Z [info] Skipped updating.
2022-04-28T16:40:04.531Z [info] Updated eliastiksofts.com with [IP]
Ainsi, cloudflare-ddns mettra à jour les DNS de votre site toutes les 5 minutes si nécessaire.
Commentaires