2 min read

Ajouter un site généré avec pkgdown comme sous-domaine

Mon objectif est de faire apparaître la documentation d’un package hébergé sur Github comme sous-domaine de aurele.me, à l’adresse aureleutils.aurele.me.

Blogdown 🖊

Grâce à l’excellent guide de Yihui, Amber et Alison bookdown.org/yihui/blogdown/, ce site est généré par Hugo via blogdown, hébergé chez Netlify, et enregistré auprès de Gandi.
Netlify et Gandi font tous deux aussi office de DNS provider, et parmi les nombreux choix un peu arbitraires qu’il faut effectuer, j’ai suivi la recommandation de Netlify de remplacer les nameservers de Gandi par les leurs (en réalité des nameservers tiers, ceux de ns1.com).

Pkgdown 📦

Grâce à pkgdown, en trois étapes, la documentation d’un package est en ligne sur Github Pages à l’adresse <username>.github.io/<package_name>:

  • pkgdown::build_site() et usethis::use_pkgdown() pour générer localement un site complet dans le répertoire ./docs/
  • git commit et push sur Github
  • Dans l’interface web de Github, dans les options du dépôt, activer Github Pages pour “master branch /docs folder”

DNS et sous-domaine

Il s’agit maintenant de “mapper” le site hébergé sur Github Pages, au sous-domaine aureleutils.aurele.me (de même que aurele.netlify.com est “mappé” à aurele.me), et pour cela d’ajouter un “enregistrement DNS” dans un “fichier de zone”.

Je me suis un peu emmêlé les pinceaux à ce moment-là, entre Gandi dont j’avais remplacé la configuration par défaut, et Netlify dont les nameservers ne sont pas vraiment les leurs… Finalement, en ajoutant aureleutils.aurele.me 10800 IN CNAME eaurele.github.io dans l’interface (un peu cachée) de gestion DNS de Netlify, puis de retour dans les options Github, en renseignant aureleutils.aurele.me comme “custom domain”, ça marche !

Bon, à l’heure où j’écris, il y a encore un petit problème d’HTTPS, eh oui il semblerait que les délais d’actualisation et autres synchronisations soient légion entre tous ces services.

La doc est bien là : aureleutils.aurele.me !

Dig en ligne de commande pour illustrer que le mapping s’est bien passé :

$ dig aureleutils.aurele.me +nostats +nocomments +nocmd

; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> aureleutils.aurele.me +nostats +nocomments +nocmd
;; global options: +cmd
;aureleutils.aurele.me.     IN  A
aureleutils.aurele.me.  7068    IN  CNAME   eaurele.github.io.
eaurele.github.io.  3467    IN  CNAME   sni.github.map.fastly.net.
sni.github.map.fastly.net. 3467 IN  A   185.199.111.153
sni.github.map.fastly.net. 3467 IN  A   185.199.110.153
sni.github.map.fastly.net. 3467 IN  A   185.199.109.153
sni.github.map.fastly.net. 3467 IN  A   185.199.108.153