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
:
Nom | Type | Cible |
---|---|---|
homelab.scasse.com. | CNAME | ksh2177.gitlab.io. |
www.homelab.scasse.com. | CNAME | ksh2177.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 nomfavicon.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ème | Solution |
---|---|
Plus de CSS après changement de baseURL | Ajout de relativeURLs = true et canonifyURLs = true dans hugo.toml |
Le favicon n’apparaît pas | Vérifie le cache navigateur + que le fichier est bien dans static/favicon.ico |
Erreur DNS CNAME and other data | Vérifie qu’il n’y a qu’un seul CNAME par sous-domaine |
Redirection GitLab demandant un login | Le projet doit être privé, mais Pages configuré pour être public pour Everyone |
6. ✅ Résultat final#
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é.