Aller au contenu

Gitlab CI

Table des matières

1. ⚙️ Configuration du site Hugo
#

📂 Arborescence de base
#

Ton site suit l’organisation classique d’un projet Hugo :

.
├── config/
│   └── _default/hugo.toml
├── content/
├── static/
│   └── favicon.ico
├── layouts/
├── public/              <-- généré par Hugo
├── .gitlab-ci.yml

📝 Fichier hugo.toml
#

theme = "blowfish"
baseURL = "https://homelab.scasse.com"
relativeURLs = true
canonifyURLs = true

🔎 baseURL est important pour générer des liens corrects, notamment les assets CSS/JS. En environnement GitLab Pages, ce champ doit pointer vers ton domaine final.


2. 🧪 Pipeline GitLab CI
#

⚙️ .gitlab-ci.yml
#

image: docker.io/hugomods/hugo:ci

variables:
  GIT_SUBMODULE_STRATEGY: recursive
  HUGO_ENV: production
  HUGO_BASEURL: "https://homelab.scasse.com/"

pages:
  script:
    - hugo --minify --gc --cleanDestinationDir --baseURL="$HUGO_BASEURL"
  artifacts:
    paths:
      - public
  rules:
    - if: '$CI_PIPELINE_SOURCE == "push"'

✅ Ce fichier :

  • Utilise une image Hugo officielle
  • Minifie le site
  • Nettoie le dossier public
  • Génère le site avec le bon baseURL
  • Déploie les fichiers du dossier public vers GitLab Pages

3. 🌍 Configuration du domaine personnalisé
#

🎯 Objectif
#

Associer homelab.scasse.com à ksh2177.gitlab.io/homelab.

🧾 DNS chez o2switch
#

Ajoute 2 entrées CNAME dans la zone DNS de scasse.com :

NomTypeCible
homelab.scasse.com.CNAMEksh2177.gitlab.io.
www.homelab.scasse.com.CNAMEksh2177.gitlab.io.

✅ Vérification GitLab
#

Ajoute un enregistrement TXT pour la vérification de propriété :

Nom : _gitlab-pages-verification-code.homelab.scasse.com.
Type : TXT
Valeur : gitlab-pages-verification-code=XXXXXXXXXXXXXXX

Ensuite, retourne sur GitLab > Pages > Vérifie que le domaine est bien Verified ✅.


4. 🎨 Ajout du favicon
#

🖼️ Création
#

  • Créé à partir d’un terminal stylisé avec les couleurs du thème
  • Converti en .ico 256x256
  • Placé dans le dossier static/ sous le nom favicon.ico

🔗 Accessible via :
#

https://homelab.scasse.com/favicon.ico

🛠️ Fonctionnement
#

Le thème Blowfish détecte automatiquement static/favicon.ico si présent à la racine. Pas besoin de surcharger les layouts.


5. 🧼 Problèmes rencontrés & résolutions
#

ProblèmeSolution
Plus de CSS après changement de baseURLAjout de relativeURLs = true et canonifyURLs = true dans hugo.toml
Le favicon n’apparaît pasVérifie le cache navigateur + que le fichier est bien dans static/favicon.ico
Erreur DNS CNAME and other dataVérifie qu’il n’y a qu’un seul CNAME par sous-domaine
Redirection GitLab demandant un loginLe projet doit être privé, mais Pages configuré pour être public pour Everyone

6. ✅ Résultat final
#

🌐 homelab.scasse.com

Ton site Hugo est en ligne, avec :

  • Nom de domaine personnalisé
  • Thème Blowfish
  • Déploiement automatique à chaque git push
  • Favicon personnalisé
  • Infrastructure maîtrisée de bout en bout

Aucun article trouvé.