Faire un DDNS en utilisant Cloudflare avec Docker
Enfin, j'ai pu auto-héberger des sites web chez moi, sur un NAS Synology, ou un serveur Linux avec Docker.
Un peu de contexte
J'utilisais Google Domains comme registrar, et sa fermeture imminente et la migration des noms de de domaines chez Squarespace ne m’intéressait pas.
J'ai donc transféré mon nom de domaine chez OVH, sachant pertinemment que leur fonction DynHost ne couvrait pas l'utilisation de l'IPv6 (un comble en 2023), il fallait trouver une solution.
Je me suis donc tourné vers Cloudflare.
Prérequis
Il convient de disposer des éléments suivants :
- un nom de domaine chez un registrar où les DNS pointent vers Cloudflare (avec un compte actif chez eux)
- La clé API, un token API, le mail utilisé pour le compte Cloudflare
- Un NAS Synology ou une machine Linux avec Docker Compose d'installé
- Un routeur avec l'IPv6 d'activée qui contourne le routeur Starlink
Configuration
Tout d'abord, écrire un fichier docker-compose.yml :
version: '3.9'
services:
cloudflare-ddns:
image: timothyjmiller/cloudflare-ddns:latest
container_name: cloudflare-ddns
security_opt:
- no-new-privileges:true
network_mode: 'host'
environment:
- PUID=1000
- PGID=1000
volumes:
- /VOTRE/CHEMIN/ICI/config.json:/config.json
restart: unless-stopped
Puis, dans le dossier que vous avez créé, écrire un fichier config.json :
{
"cloudflare": [
{
"authentication": {
"api_token": "api_token",
"api_key": {
"api_key": "api_key",
"account_email": "votre_email"
}
},
"zone_id": "votre_zone_id_ici",
"subdomains": [
{
"name": "www",
"proxied": false
},
{
"name": "foo",
"proxied": false
},
{
"name": "bar",
"proxied": false
}
]
}
],
"a": false,
"aaaa": true,
"purgeUnknownRecords": false,
"ttl": 3600
}
Puis lancer avec docker-compose up -d
Vérifier la bonne transmission des informations à la zone DNS.
Et voilà !