Dans cet article nous avons vu comment déployer un site Hugo avec GitHub pages.

Comment déployer sur un serveur apache ?

Si vous êtes ici, j’estime que vous savez ce qu’est un serveur apache. Et que vous vous y connaissez un minimum dans l’hébergement.

Pour ma part, je vais le déployer sur mon serveur VPS, celui-ci tournant sur une distribution Linux Debian.

Téléchargez votre code depuis GitHub vers votre serveur

Il vous faut dans un premier temps, poussez votre code sur GitHub, puis le transférer vers votre serveur, pour cela placer vous dans le ou vous souhaitez le positionner. Pour ma part, je suis dans /var/www/.

Par la suite, saisissez la commande Git, soyez sûre d’avoir les droits nécessaires, vous aurez peut-être à créer une clé SSH si c’est votre première fois :

git clone lienDeVotreRepo

Une fois que vous aurez cloné votre projet, modifions le fichier config.toml à la racine avec la commande suivante :

vi config.toml

ou

nano config.toml

Il nous faut modifier la première ligne, cette adresse sera l’adresse finale. Par exemple, dans mon cas, l’adresse est https://blog.g-alexis.com notez le s à http, si vous mettez le s alors, il faudra lancer une commande supplémentaire pour obtenir le chiffrement avec “certbot” par exemple.

baseURL = 'adresseDeVotreBlog'

Et ajouter cette ligne également :

publishDir = "docs"

Cette dernière signifie qu’une fois que l’on créera le build alors celui-ci se trouvera dans un dossier appelé docs à la racine du projet.

Installer Hugo sur son serveur

Comme sur sa machine, avec Homebrew, vous pouvez l’installer facilement avec la commande :

brew install hugo

Pour vérifier si Hugo a bien été installé correctement :

hugo version

Comment créer un build de votre site ?

Plus haut, nous avons ajouté les 2/3 lignes nécessaires au bon fonctionnement du blog par la suite, à présent, nous avons besoin de créer le build. Placez-vous à la racine de votre projet et saisissez :

hugo

Cette simple commande va ainsi créer un dossier nommé docs à la racine de votre projet, à l’intérieur de ce dossier, on retrouvera la version statique de votre site. C’est donc vers ce dossier que nous pointerons quand une personne essaiera d’atteindre votre blog.

Configurez apache pour pointer vers notre blog

Pour cela, rendez-vous dans le dossier d’apache qui devrait se trouver ici :

cd /etc/apache2/sites-available/

Dans ce dossier, veuillez créer un fichier au nom que vous souhaitez avec une extension en .conf par exemple : blog.conf.

Pour cela, taper la commande :

vi blog.conf

À l’intérieur de ce fichier, veuillez coller ce bout de configuration :

<VirtualHost *:80>
     ServerAdmin admin@your_domain.com
     DocumentRoot /var/www/blog/docs
     ServerName blog.g-alexis.com

     <Directory /var/www/blog/docs>
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/blog_error.log
     CustomLog ${APACHE_LOG_DIR}/blog_access.log combined
</VirtualHost>

Veuillez modifier les informations nécessaires :

  • DocumentRoot, précisez le chemin jusqu’à votre dossier docs
  • ServerName, précisez l’adresse que vous aviez mise dans le fichier config.toml
  • Directory, précisez le chemin jusqu’à votre dossier docs

Une fois le fichier modifié, vous pouvez sauvegarder et quitter le fichier. Il nous faut maintenant créer le lien symbolique et pour cela, vous devez saisir :

a2ensite nomDuFichier.conf

Notez que ceci est pour Debian, et que d’une distribution Linux à une autre, il se peut que ce soit un petit peu différent dans la syntaxe.

Il nous faut relancer apache pour prendre en compte les modifications et pour cela il nous faut taper :

sudo systemctl restart apache2.service

Si vous avez décidé de ne pas chiffrer votre site, donc de rester en http alors, vous devriez pouvoir accéder à celui-ci à présent à l’adresse que vous avez choisi.

Pour les autres, il nous faut maintenant chiffrer notre site, avec par exemple certbot. Voici un lien qui nous explique comment le faire.


En espérant que ceci aura pu vous aider ! N’hésitez à me suivre sur GitHub ou LinkedIn.