Hugo Installation · 19 min read · Oct 19, 2025

Comment installer le générateur de site Hugo avec Nginx sur Rocky Linux 9

Un site statique est construit avec des pages de contenu statique ou du code HTML, JavaScript ou CSS simple. Le contenu n’est pas généré dynamiquement et n’implique aucun traitement de base de données ou côté serveur. De tels sites sont incroyablement rapides et immunisés contre les exploits qui dépendent de code dynamique ou SQL.

Hugo est un générateur de site statique open-source écrit en Go. Il génère du contenu en convertissant des publications écrites en langage markdown en HTML. Hugo est également livré avec un serveur intégré pour héberger les sites qu’il génère. Vous pouvez également héberger un site Web Hugo sur Amazon S3, GitHub pages, Google Cloud, Netlify, Vercel, etc.

Dans ce tutoriel, nous allons explorer comment installer Hugo pour créer un site Web statique sur un serveur alimenté par Rocky Linux 9. Nous utiliserons le serveur Nginx pour héberger le site et le certificat SSL Let’s Encrypt pour sécuriser notre installation.

Prérequis

  • Un serveur exécutant Rocky Linux 9.
  • Un utilisateur non-root avec des privilèges sudo.
  • Un nom de domaine entièrement qualifié (FQDN) pointant vers votre serveur. Pour nos besoins, nous utiliserons hugo.example.com comme nom de domaine.
  • Assurez-vous que tout est à jour. $ sudo dnf update
  • Installez des paquets utilitaires de base. Certains d’entre eux peuvent déjà être installés. $ sudo dnf install wget curl nano unzip yum-utils tree -y

Étape 1 - Configurer le pare-feu

La première étape consiste à configurer le pare-feu. Rocky Linux utilise le pare-feu Firewalld. Vérifiez l’état du pare-feu.

$ sudo firewall-cmd --state
running

Le pare-feu fonctionne avec différentes zones, et la zone publique est celle par défaut que nous allons utiliser. Listez tous les services et ports actifs sur le pare-feu.

$ sudo firewall-cmd --permanent --list-services

Il devrait afficher la sortie suivante.

cockpit dhcpv6-client ssh

Wiki.js a besoin des ports HTTP et HTTPS pour fonctionner. Ouvrez-les.

$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --add-service=https --permanent

Rechargez le pare-feu pour appliquer les modifications.

$ sudo firewall-cmd --reload

Étape 2 - Installer Nginx

Rocky Linux 9 est livré avec une version plus ancienne de Nginx. Vous devez télécharger le dépôt officiel de Nginx pour installer la dernière version.

Créez et ouvrez le fichier /etc/yum.repos.d/nginx.repo pour créer le dépôt officiel de Nginx.

$ sudo nano /etc/yum.repos.d/nginx.repo

Collez le code suivant dedans.

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Installez le serveur Nginx.

$ sudo dnf install nginx -y

Vérifiez l’installation.

$ nginx -v
nginx version: nginx/1.24.0

Activez et démarrez le serveur Nginx.

$ sudo systemctl enable nginx --now

Vérifiez l’état du serveur.

$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: disabled)
     Active: active (running) since Mon 2023-10-30 08:24:05 UTC; 7s ago
       Docs: http://nginx.org/en/docs/
    Process: 4265 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 4266 (nginx)
      Tasks: 2 (limit: 4402)
     Memory: 1.9M
        CPU: 7ms
     CGroup: /system.slice/nginx.service
             ??4266 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??4267 "nginx: worker process"

Oct 30 08:24:05 hugo.example.com systemd[1]: Starting nginx - high performance web server...

Étape 3 - Installer Git

Hugo a besoin de Git pour fonctionner. Exécutez la commande suivante pour installer Git

$ sudo dnf install git -y

Vérifiez l’installation de Git.

$ git --version
git version 2.39.3

Étape 4 - Installer Hugo

Puisque Hugo est construit en utilisant le langage Go, son installation est assez simple car elle ne nécessite aucune dépendance et peut être exécutée de manière autonome.

Téléchargez Hugo. Pour notre tutoriel, nous allons installer la version étendue de Hugo. La version étendue peut encoder des images au format Webp lors du traitement des images. Cela est utile si vous souhaitez que Hugo convertisse les images pour vous à la volée et maintienne leur taille réduite. La version étendue comprend également un compilateur SASS qui peut être utile dans certains cas si vous en avez besoin.

Créez un répertoire pour Hugo.

$ sudo mkdir /var/www/html/hugo -p

Passez au répertoire nouvellement créé.

$ cd /var/www/html/hugo

Téléchargez Hugo depuis la page des versions GitHub. Au moment de la rédaction de ce tutoriel, v0.119.0 est la dernière version que nous allons télécharger.

$ sudo wget https://github.com/gohugoio/hugo/releases/download/v0.119.0/hugo_extended_0.119.0_linux-amd64.tar.gz

Extrayez les fichiers de l’archive.

$ sudo tar -xzf hugo_extended_0.119.0_linux-amd64.tar.gz

Vous verrez les trois fichiers suivants dans votre répertoire.

$ ls
hugo  hugo_extended_0.119.0_linux-amd64.tar.gz  LICENSE  README.md

Déplacez le binaire hugo vers le répertoire /usr/bin.

$ sudo mv hugo /usr/bin/hugo

Le fichier a déjà les autorisations d’exécution définies, donc vous n’avez pas besoin de les définir.

Confirmez l’installation.

$ hugo version
hugo v0.119.0-b84644c008e0dc2c4b67bd69cccf87a41a03937e+extended linux/amd64 BuildDate=2023-09-24T15:20:17Z VendorInfo=gohugoio

Vous pouvez également vérifier toutes les options disponibles à l’aide du drapeau --help.

$ hugo --help

Vous obtiendrez la sortie suivante.

hugo is the main command, used to build your Hugo site.

Hugo is a Fast and Flexible Static Site Generator
built with love by spf13 and friends in Go.

Complete documentation is available at https://gohugo.io/.

Usage:
  hugo [flags]
  hugo [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  config      Print the site configuration
  convert     Convert your content to different formats
  deploy      Deploy your site to a Cloud provider.
  env         Print Hugo version and environment info
  gen         A collection of several useful generators.
  help        Help about any command
  import      Import your site from others.
  list        Listing out various types of content
  mod         Various Hugo Modules helpers.
  new         Create new content for your site
  server      A high performance webserver
  version     Print Hugo version and environment info

Flags:
  -b, --baseURL string             hostname (and path) to the root, e.g. https://spf13.com/
  -D, --buildDrafts                include content marked as draft
  -E, --buildExpired               include expired content
  -F, --buildFuture                include content with publishdate in the future
      --cacheDir string            filesystem path to cache directory
      --cleanDestinationDir        remove files from destination not found in static directories
      --clock string               set the clock used by Hugo, e.g. --clock 2021-11-06T22:30:00.00+09:00
      --config string              config file (default is hugo.yaml|json|toml)
      --configDir string           config dir (default "config")
  -c, --contentDir string          filesystem path to content directory
      --debug                      debug output
  -d, --destination string         filesystem path to write files to
      --disableKinds strings       disable different kind of pages (home, RSS etc.)
      --enableGitInfo              add Git revision, date, author, and CODEOWNERS info to the pages
  -e, --environment string         build environment
      --forceSyncStatic            copy all files when static is changed.
      --gc                         enable to run some cleanup tasks (remove unused cache files) after the build
  -h, --help                       help for hugo
      --ignoreCache                ignores the cache directory
      --ignoreVendorPaths string   ignores any _vendor for module paths matching the given Glob pattern
  -l, --layoutDir string           filesystem path to layout directory
      --logLevel string            log level (debug|info|warn|error)
      --minify                     minify any supported output format (HTML, XML etc.)
      --noBuildLock                don't create .hugo_build.lock file
      --noChmod                    don't sync permission mode of files
      --noTimes                    don't sync modification time of files
      --panicOnWarning             panic on first WARNING log
      --poll string                set this to a poll interval, e.g --poll 700ms, to use a poll based approach to watch for file system changes
      --printI18nWarnings          print missing translations
      --printMemoryUsage           print memory usage to screen at intervals
      --printPathWarnings          print warnings on duplicate target paths etc.
      --printUnusedTemplates       print warnings on unused templates.
      --quiet                      build in quiet mode
      --renderToMemory             render to memory (only useful for benchmark testing)
  -s, --source string              filesystem path to read files relative from
      --templateMetrics            display metrics about template executions
      --templateMetricsHints       calculate some improvement hints when combined with --templateMetrics
  -t, --theme strings              themes to use (located in /themes/THEMENAME/)
      --themesDir string           filesystem path to themes directory
      --trace file                 write trace to file (not useful in general)
  -v, --verbose                    verbose output
  -w, --watch                      watch filesystem for changes and recreate as needed

Use "hugo [command] --help" for more information about a command.

Supprimez tous les fichiers restants dans le dossier car ils ne sont plus nécessaires.

$ sudo rm -rf *.*

Étape 5 - Créer un nouveau site Hugo

Émettez la commande suivante pour créer un nouveau site Web Hugo.

$ sudo hugo new site howtoforge

Vous obtiendrez la sortie suivante.

Félicitations ! Votre nouveau site Hugo a été créé dans /home/navjot/hugo/howtoforge.

Encore quelques étapes...

1. Changez le répertoire actuel en /home/navjot/hugo/howtoforge.
2. Créez ou installez un thème :
   - Créez un nouveau thème avec la commande "hugo new theme "
   - Installez un thème depuis https://themes.gohugo.io/
3. Éditez hugo.toml, en définissant la propriété "theme" sur le nom du thème.
4. Créez un nouveau contenu avec la commande "hugo new content /.".
5. Démarrez le serveur Web intégré avec la commande "hugo server --buildDrafts".

Voir la documentation à https://gohugo.io/.

Exécutez la commande tree pour vérifier la structure du site.

$ tree howtoforge/

Vous obtiendrez la sortie suivante.

howtoforge/
??? archetypes
?   ??? default.md
??? assets
??? content
??? data
??? hugo.toml
??? i18n
??? layouts
??? static
??? themes

8 directories, 2 files

Passez au répertoire Hugo.

$ cd howtoforge

Étape 6 - Installer un thème Hugo

L’étape suivante consiste à installer un thème Hugo. Il existe deux façons de procéder et les deux nécessitent Git. La première méthode est simple et consiste à cloner le dépôt GitHub du thème. Cela est utile dans la plupart des cas et c’est le moyen le plus simple de procéder. La mise à jour via cette méthode est facile, bien que cette méthode implique de télécharger beaucoup de choses inutiles dont vous n’avez pas besoin. Il existe certains thèmes, en particulier ceux payants, qui n’ont pas de dépôt GitHub d’où vous pouvez les récupérer. De tels thèmes sont généralement proposés sous forme d’archive compressée. Dans ce cas, vous devez extraire l’archive manuellement et maintenir le thème à jour manuellement. La troisième méthode consiste à récupérer le thème en tant que sous-module Git. Cela nécessite d’initialiser votre répertoire Hugo en tant que dépôt Git. C’est la méthode recommandée et elle est utile si vous souhaitez déployer votre site sur GitHub, Netlify ou tout autre service d’hébergement. Pousser votre site Hugo sur GitHub garantit également des sauvegardes automatiques sans effort supplémentaire.

Nous allons couvrir les trois méthodes. Il existe une autre méthode d’installation d’un thème Hugo en utilisant les modules Go de Hugo. Cette méthode ne fonctionne que si le thème est disponible en tant que module Hugo. Cependant, nous ne la couvrirons pas car elle est en dehors du cadre de cet article.

Méthode 1 - Clonage d’un thème Hugo

C’est la méthode la plus couramment utilisée pour installer un thème Hugo. Pour notre tutoriel, nous allons installer le thème Paper. Passez au répertoire Hugo.

$ cd /var/www/html/hugo/howtoforge

Exécutez la commande suivante pour cloner le dépôt GitHub du thème. Le drapeau --depth=1 ne récupère que le dernier commit.

$ sudo git clone https://github.com/nanxiaobei/hugo-paper themes/Paper --depth=1

Pour mettre à jour le thème téléchargé via cette méthode, exécutez les commandes suivantes.

$ cd ~/hugo/howtoforge/themes/Paper
$ sudo git pull

Méthode 2 - Installation d’un thème à partir d’une archive compressée

C’est la méthode la plus simple de toutes. Récupérez l’archive du fichier thème. Le thème Paper n’a pas de section de versions, donc vous ne pouvez pas télécharger une version particulière. Par conséquent, nous allons télécharger l’archive master de GitHub. Vous pouvez récupérer le lien depuis sa page de dépôt GitHub.

$ cd ~
$ wget https://github.com/nanxiaobei/hugo-paper/archive/refs/heads/main.zip

Extrayez l’archive dans le répertoire des thèmes. Le drapeau -q supprime la sortie et le drapeau -d spécifie le répertoire de sortie.

$  sudo unzip -q main.zip -d /var/www/html/hugo/howtoforge/themes/

Pour mettre à jour le thème, vous devez télécharger la dernière archive et l’extraire à nouveau. Assurez-vous de faire une sauvegarde de tous les fichiers que vous avez modifiés.

Les deux méthodes inférieures ne fonctionnent que si votre site Hugo est hébergé en tant que projet Git. Sinon, vous n’avez pas besoin d’utiliser les méthodes suivantes.

Méthode 3 - Installation d’un thème en tant que sous-module Git

Passez au dossier Hugo.

$ cd /var/www/html/hugo/howtoforge

Initialisez le dossier Hugo en tant que dépôt Git. C’est une étape importante. Cela vous permet de pousser votre site Hugo sur GitHub pour l’utiliser plus tard pour l’héberger via Netlify, AWS, Vercel, etc.

$ sudo git init

Exécutez la commande suivante pour ajouter le thème en tant que sous-module Git.

$ sudo git submodule add https://github.com/nanxiaobei/hugo-paper themes/paper

Pour mettre à jour un thème ajouté en tant que sous-module, exécutez la commande suivante depuis le dossier Hugo.

$ sudo git submodule update --remote --merge

Configurer Hugo

Une fois que vous avez installé le thème en utilisant la méthode de votre choix, ouvrez le fichier hugo.toml dans le répertoire racine de votre Hugo. À partir de Hugo v0.110.0, le fichier de configuration par défaut s’appelle hugo.toml. Si vous utilisez une version plus ancienne de Hugo, vous trouverez le fichier config.toml dans votre répertoire Hugo.

$ sudo nano hugo.toml

Ajoutez la ligne suivante au fichier. La valeur doit correspondre au répertoire du thème. Pour le thème Paper, ce serait le répertoire hugo-paper-theme si vous avez utilisé l’installation par archive ou Paper si vous avez utilisé la méthode de clonage Git ou de sous-module ci-dessus.

theme = 'hugo-paper-main'

Changez également la valeur de la variable baseURL pour le nom de domaine de votre site. Et changez le title de votre site Web.

Votre fichier de configuration devrait ressembler à ceci.

baseURL = 'https://hugo.example.com/'
languageCode = 'fr'
title = 'Démo Hugo de Howtoforge'
theme = 'hugo-paper-main'

Une fois terminé, enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Étape 7 - Créer des publications et des pages

Pour créer une nouvelle publication, émettez la commande suivante.

$ sudo hugo new post/first-post.md

Cela créera un nouveau fichier markdown first-post.md avec le titre Première publication dans le dossier content/post. Ouvrez le fichier dans votre éditeur préféré et modifiez les détails et écrivez quelque chose pour votre première publication.

+++
title = 'Première publication'
date = 2023-10-30T03:32:38Z
draft = true
+++
## Introduction

Ceci est un texte en gras, et ceci est un texte *souligné*.

Visitez le site [Howtoforge](https://www.howtoforge.com) !

Supprimez draft = true une fois que vous avez terminé d’écrire la publication. Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Pour créer une nouvelle page, émettez la commande suivante.

$ sudo hugo new about.md

Cela créera une nouvelle page intitulée À propos dans le dossier content. Ouvrez-la et modifiez-la de la même manière que la publication.

Configurer le thème

Avant de publier, nous devons apporter quelques modifications au thème pour afficher la barre de menu. Ces modifications seront effectuées dans le fichier de configuration de Hugo et non dans la configuration du thème.

Passez au répertoire Hugo.

$ cd /var/www/html/hugo/howtoforge

Ouvrez le fichier hugo.toml pour l’éditer.

$ sudo nano hugo.toml

Collez le code suivant en bas.

author = "Navjot Singh"
copyright = "Copyright © 2023, Navjot Singh; tous droits réservés."
paginate = 3
enableInlineShortcodes = true
# nécessaire pour rendre le HTML brut (e.g. , , , )
[markup]
  [markup.goldmark]
    [markup.goldmark.renderer]
      unsafe = true

[menu]
  [[menu.main]]
    identifier = "about"
    name = "À propos"
    url = "/about/"
    weight = 10

[taxonomies]
category = "catégories"
tag = "tags"
series = "séries"

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Ce sont quelques paramètres de base pour rendre le site fonctionnel. Ici, nous avons configuré le site pour afficher 3 publications par page, afficher la page À propos comme un élément de menu, et configurer les catégories, les tags et les séries de publications. Nous avons également activé les shortcodes en ligne de Hugo et activé le HTML brut pour le rendu Markdown Goldmark. Vous pouvez le désactiver si vous ne souhaitez pas intégrer du HTML brut dans vos publications.

Étape 8 - Publier le site Hugo

Pour construire et publier le site, exécutez simplement la commande suivante.

$ sudo hugo

Vous obtiendrez une sortie similaire.

Démarrage de la construction des sites …
hugo v0.119.0-b84644c008e0dc2c4b67bd69cccf87a41a03937e+extended linux/amd64 BuildDate=2023-09-24T15:20:17Z VendorInfo=gohugoio


                   | FR
-------------------+-----
  Pages            |  7
  Paginator pages  |  0
  Non-page files   |  0
  Static files     | 11
  Processed images |  0
  Aliases          |  3
  Sitemaps         |  1
  Cleaned          |  0

Total en 46 ms

Cela crée et publie le site Web statique Hugo dans le dossier public. Ce sont les fichiers que nous devons spécifier dans la configuration Nginx pour que le site fonctionne. Exécutez à nouveau la commande après avoir effectué une modification et votre site Web sera mis à jour en un rien de temps.

Étape 9 - Installer SSL

Avant de continuer, nous devons installer l’outil Certbot et installer un certificat SSL pour notre domaine.

Pour installer Certbot, nous allons utiliser le gestionnaire de paquets Snapd. Snapd porte toujours la dernière version stable de Certbot et vous devriez l’utiliser.

L’outil Snapd nécessite le dépôt Epel pour fonctionner.

$ sudo dnf install epel-release -y

Nous allons utiliser Snapd pour installer Certbot. Installez Snapd.

$ sudo dnf install snapd -y

Activez et démarrez le service Snap.

$ sudo systemctl enable snapd.socket --now

Créez les liens nécessaires pour que Snapd fonctionne.

$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh

Assurez-vous que votre version de snapd est à jour. Attendez quelques secondes avant d’émettre les commandes suivantes.

$ sudo snap install core
$ sudo snap refresh core

Installez Certbot.

$ sudo snap install --classic certbot

Utilisez la commande suivante pour vous assurer que la commande Certbot peut être exécutée en créant un lien symbolique vers le répertoire /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Vérifiez l’installation.

$ certbot --version
certbot 2.7.3

Générez un certificat SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d hugo.example.com

La commande ci-dessus téléchargera un certificat dans le répertoire /etc/letsencrypt/live/hugo.example.com sur votre serveur.

Générez un certificat de groupe Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Vérifiez le service de planification de renouvellement de Certbot.

$ sudo systemctl list-timers

Vous trouverez snap.certbot.renew.service comme l’un des services programmés pour s’exécuter.

NEXT                        LEFT          LAST                        PASSED    UNIT                         ACTIVATES
Wed 2023-10-29 10:00:17 UTC 57min left    Wed 2023-10-18 08:49:39 UTC 12min ago dnf-makecache.timer          dnf-makecache.service
Wed 2023-10-29 12:18:00 UTC 3h 15min left -                           -         snap.certbot.renew.timer     snap.certbot.renew.service
Thu 2023-10-30 00:00:00 UTC 14h left      Wed 2023-10-18 08:10:08 UTC 52min ago logrotate.timer              logrotate.service

Faites un essai à blanc du processus pour vérifier si le renouvellement SSL fonctionne correctement.

$ sudo certbot renew --dry-run

Si vous ne voyez aucune erreur, vous êtes prêt. Votre certificat se renouvellera automatiquement.

Étape 10 - Configurer Nginx

Créez et ouvrez le fichier /etc/nginx/conf.d/hugo.conf pour l’éditer.

$ sudo nano /etc/nginx/conf.d/hugo.conf

Collez le code suivant dans le fichier hugo.conf. Remplacez toutes les occurrences de hugo.example.com par votre domaine.

## appliquer HTTPS
server {
  listen 80;
  listen [::]:80;
  server_name hugo.example.com;
  return 301 https://$server_name$request_uri;
}

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name hugo.example.com;

  root /home/navjot/hugo/howtoforge/public;
  index index.html
  
  access_log /var/log/nginx/hugo.access.log;
  error_log /var/log/nginx/hugo.error.log;
  client_max_body_size 20m;
  gzip on;

  http2_push_preload on; # Activer le HTTP/2 Server Push

  ssl_certificate     /etc/letsencrypt/live/hugo.example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/hugo.example.com/privkey.pem;
  ssl_trusted_certificate /etc/letsencrypt/live/hugo.example.com/chain.pem;
  ssl_session_timeout 1d;

  # Activer les versions TLS (TLSv1.3 est requis pour le prochain HTTP/3 QUIC).
  ssl_protocols TLSv1.2 TLSv1.3;

  # Activer le 0-RTT de TLSv1.3. Utilisez $ssl_early_data lors du reverse proxy pour
  # prévenir les attaques de rejeu.
  #
  # @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
  ssl_early_data on;

  ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
  ssl_prefer_server_ciphers on;
  ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
  ssl_session_cache shared:SSL:50m;
  ssl_session_tickets off;

  # OCSP Stapling ---
  # récupérer les enregistrements OCSP à partir de l'URL dans ssl_certificate et les mettre en cache
  ssl_stapling on;
  ssl_stapling_verify on;
  ssl_dhparam /etc/ssl/certs/dhparam.pem;

  add_header X-Early-Data $tls1_3_early_data;
  
  location / {
      try_files $uri $uri/ =404;
  }
  
  # Médias
  location ~* \\.jpg|jpeg|gif|png|ico|cur|gz|svg|mp4|ogg|ogv|webm|htc$ {
      expires 30d;
  }

  # CSS et Js
  location ~* \\.css|js$ {
      expires 7d;
  }
}

# Ce bloc est utile pour déboguer TLS v1.3. N'hésitez pas à le supprimer
# et à utiliser la variable `$ssl_early_data` exposée par NGINX directement si vous
# souhaitez le faire.
map $ssl_early_data $tls1_3_early_data {
  "~." $ssl_early_data;
  default "";
}

La configuration ci-dessus redirigera toutes les requêtes HTTP vers HTTPS et servira de proxy pour le service Hugo afin de le servir via votre domaine.

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Ouvrez le fichier /etc/nginx/nginx.conf pour l’éditer.

$ sudo nano /etc/nginx/nginx.conf

Ajoutez la ligne suivante avant la ligne include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Vérifiez votre configuration Nginx.

$ sudo nginx -t

Si vous ne voyez aucune erreur, cela signifie que vous êtes prêt. Rechargez le serveur Nginx.

$ sudo systemctl reload nginx

Étape 11 - Configurer SELinux

Changez le contexte de sécurité des fichiers pour OpenEMR.

$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/hugo/howtoforge/public(/.*)?"

Appliquez la politique.

$ sudo restorecon -Rv /var/www/html/hugo/howtoforge/public/

Autorisez Nginx à se connecter au réseau.

$ sudo setsebool -P httpd_can_network_connect 1

Étape 12 - Exécuter le site

Maintenant, vous pouvez vérifier votre installation en ouvrant https://hugo.example.com dans votre navigateur Web. Vous obtiendrez la page suivante indiquant une installation réussie.

Page d'accueil de Hugo

Étape 13 - Mettre à jour Hugo

Mettre à jour Hugo est assez simple. Téléchargez la dernière version depuis la page GitHub de Hugo.

$ cd /var/www/html/hugo
$ sudo wget https://github.com/gohugoio/hugo/releases/download/v0.119.0/hugo_extended_0.119.0_linux-amd64.tar.gz

Extrayez l’archive.

$ sudo tar -xzf hugo_extended_0.119.0_linux-amd64.tar.gz

Et remplacez le binaire Hugo par la dernière version. Le drapeau -f écrase le binaire sans demander. Vous pouvez utiliser le drapeau -i à la place si vous souhaitez être invité à écraser.

$ sudo mv -f hugo /usr/bin/hugo

C’est tout. Mettre à jour Hugo est aussi simple que de remplacer le binaire.

Étape 14 - Sauvegarder et restaurer Hugo

Pour faire une sauvegarde, créez une archive de l’ensemble du dossier Hugo.

$ cd /var/www/html/hugo
$ sudo tar -czvf howtoforge.tar.gz howtoforge/

Pour le restaurer sur un nouveau serveur, extrayez l’archive et installez le binaire et vous êtes prêt à partir.

$ cd /var/www/html/hugo
$ sudo tar -xzf howtoforge.tar.gz

Conclusion

Cela conclut notre tutoriel sur la façon de configurer le générateur de site statique Hugo sur votre serveur Rocky Linux 9 en utilisant Nginx. Si vous avez des questions ou des commentaires, partagez-les dans les commentaires ci-dessous.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.