Hugo est un générateur de sites web statiques populaire. Il permet de créer des sites rapides et sécurisés sans besoin de base de données. Grâce à sa flexibilité et à sa communauté active, il offre de nombreuses fonctionnalités et thèmes personnalisables. Hugo est idéal pour ceux qui recherchent une solution simple et efficace pour créer des sites web statiques.
Installation du Packet debian
Pour commencer il est nécéssaire d’installer le paquet Hugo pour votre OS (Dans mon cas Debian 11). Le paquet n’étant pas forcément a jour sur les dépot officier Debian il est préférable d’installer le binaire dispo sur le repo git du projet → Release Hugo . Dans mon cas il faut prendre la version hugo_extended elle sera utile pour le futur theme.
1
2
3
4
user@serv:~# mkdir hugo
user@serv:~# cd hugo
user@serv:~/hugo# wget https://github.com/gohugoio/hugo/releases/download/[...]_linux-amd64.deb
user@serv:~/hugo# dpkg -i [...]_linux-amd64.deb
Initialisation du nouveau site et création du dépot git
1
2
3
4
5
user@serv:~/hugo# hugo site [nom du site]
user@serv:~/hugo# cd [nom du site]
user@serv:~/hugo/[nds]# git init
user@serv:~/hugo/[nds]# git submodule add https://github.com/HEIGE-PCloud/DoIt.git themes/DoIt
user@serv:~/hugo/[nds]# hugo server
Dans l’ordre :
on demande à Hugo de créer un nouveau site
Initialisation un nouveau dépot git
Ajout un sous module git qui est enfait le theme que l’ont souhaite utiliser
Hugo build le site.
Push du dépot sur git
Créer un dépot sur GitHub
Push le dépot local (Serveur) sur GitHub
1
2
3
git remote add origin git@github.com:Username/nds.git
git branch -M main
git push -u origin main
Dans votre dépot GitHub il faut aller dans Settings > Pages au milleux de la page vous devez voir Build and deployment
Changer le type de source de Deploy form branch vers GitHub Actions
Créer un fichier dans le dépot local
1
touch .github/workflows/hugo.yaml
Copier le code ci-dessous dans le fichier hugo.yaml
.github/workflows/hugo.yaml
# Sample workflow for building and deploying a Hugo site to GitHub Pagesname:Deploy Hugo site to Pageson:# Runs on pushes targeting the default branchpush:branches:- main# Allows you to run this workflow manually from the Actions tabworkflow_dispatch:# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pagespermissions:contents:readpages:writeid-token:write# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.concurrency:group:"pages"cancel-in-progress:false# Default to bashdefaults:run:shell:bashjobs:# Build jobbuild:runs-on:ubuntu-latestenv:HUGO_VERSION:0.111.3steps:- name:Install Hugo CLIrun:| wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb - name:Install Dart Sass Embeddedrun:sudo snap install dart-sass-embedded- name:Checkoutuses:actions/checkout@v3with:submodules:recursivefetch-depth:0- name:Setup Pagesid:pagesuses:actions/configure-pages@v3- name:Install Node.js dependenciesrun:"[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"- name:Build with Hugoenv:# For maximum backward compatibility with Hugo modulesHUGO_ENVIRONMENT:productionHUGO_ENV:productionrun:| hugo \
--gc \
--minify \
--baseURL "${{ steps.pages.outputs.base_url }}/" - name:Upload artifactuses:actions/upload-pages-artifact@v1with:path:./public# Deployment jobdeploy:environment:name:github-pagesurl:${{ steps.deployment.outputs.page_url }}runs-on:ubuntu-latestneeds:buildsteps:- name:Deploy to GitHub Pagesid:deploymentuses:actions/deploy-pages@v2
Commit les changement puis le push sur GitHub.
Dans la page du dépot GitHub selectionner Actions, Il devrais apparaitre Add workflow
Quand GitHub aura fini de build Add workflow apparaitra avec une petite coche verte
Selectionner le Add workflow et vous y trouverez l’accès au site.