0x00 - Déployez votre Site Hugo en un Clin d Œil avec Docker

Cet article propose un guide pratique pour installer et configurer un site web Hugo à l'aide de Docker. Il présente deux méthodes : une installation simple et une autre avec Nginx Proxy Manager pour une gestion sécurisée. L'auteur partage ses motivations et fournit des instructions détaillées, y compris des exemples de fichiers docker-compose.yml. Ce guide est idéal pour ceux qui souhaitent déployer rapidement un site Hugo avec prise en charge multilingue.

0x00 - Déployez votre Site Hugo en un Clin d’Œil avec Docker

Introduction

Cet article a été rédigé pour répondre à un besoin que j’ai rencontré : il n’existait pas d’image Docker simple pour installer et gérer un site Hugo. J’ai donc décidé de créer ma propre solution depuis le début.

Mon objectif était de créer un conteneur Docker capable de déployer facilement un site Hugo, en respectant les critères suivants :

  • Lors de la première exécution, un nouveau site doit être créé s’il n’existe pas déjà.
  • Si un site portant le même nom est déjà présent, le service Hugo doit simplement se lancer.
  • Offrir aux utilisateurs un thème simple et clair (par exemple, Stack).
  • Proposer deux langues par défaut : l’anglais et le français, afin de simplifier la configuration.

Dans cet article, je présenterai deux méthodes d’installation : une version simple et une version utilisant Nginx Proxy Manager.

Création du fichier docker-compose.yaml

Commençons par la méthode simple. Pour cela, exécutez les commandes suivantes pour créer et éditer votre fichier docker-compose.yml.

1
touch docker-compose.yml

Éditez le fichier et copiez le contenu suivant :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
version: '3.5'
services:
  hugo_app:
    image: ghcr.io/thehackdes/docker-hugo:main
    container_name: hugo_app
    hostname: hugo_app
    restart: always
    ports:
      - 1313:1313
    volumes:
      - volume_hugo_app:/srv
    environment:
      WEBSITE: "thehackdes.com"
      OPTIONS: "--bind 0.0.0.0 --appendPort=false --baseURL=http://127.0.0.1:1313"

volumes:
  volume_hugo_app:
    name: volume_hugo_app
    external: false

Ensuite, lancez Docker Compose :

1
docker compose up -d

Si tout se passe bien, vous pourrez accéder à votre site à l’adresse suivante : http://127.0.0.1:1313.

Configuration avec Nginx Proxy Manager

Voici la configuration que j’ai mise en place sur mon serveur personnel avec Nginx Proxy Manager. Cette méthode diffère car elle crée deux réseaux : un pour Hugo et un pour le Proxy. Cela améliore la sécurité, car le réseau Hugo est uniquement dédié à la communication avec le réseau du Proxy.

Commencez par créer votre fichier docker-compose.yml :

1
touch docker-compose.yml

Éditez le fichier et copiez le contenu suivant :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
version: '3.5'
services:
  hugo_app:
    image: ghcr.io/thehackdes/docker-hugo:main
    container_name: hugo_app
    hostname: hugo_app
    restart: always
    ports:
      - 1313:1313
    volumes:
      - volume_hugo_app:/srv
    environment:
      WEBSITE: "thehackdes.com"
      OPTIONS: "--bind 0.0.0.0 --appendPort=false --baseURL=https://thehackdes.com"
    networks:
      network_nginx:
        ipv4_address: 10.0.20.29
        aliases:
          - hugo_app
      network_hugo:
        ipv4_address: 10.0.29.10
        aliases:
          - hugo_app

networks:
  network_hugo:
    name: network_hugo
    ipam:
      config:
        - subnet: 10.0.29.0/24
  network_nginx:
    external:
      name: network_nginx

volumes:
  volume_hugo_app:
    name: volume_hugo_app
    external: false

Enfin, lancez Docker Compose :

1
docker compose up -d

Il ne vous reste plus qu’à configurer votre proxy pour établir la redirection, et le tour est joué. Voici comment j’ai configuré la redirection de mon côté :

0x00_1 0x00_2
Image 1 Image 2
Licensed under CC BY-NC-SA 4.0
Généré avec Hugo
Thème Stack conçu par Jimmy