Rappel du principe de base : transformer le site sous WordPress en site statique afin de gagner en sécurité et performances.
Pour ce faire, il existe différents plugins qui permettent de générer le site dans un sous-dossier et d’en reproduire l’arborescence en version html.
Pour ce projet j’utilise le plugin Simply Static, téléchargeable directement dans WordPress sur une simple recherche d’extension, ou via l’URL officielle du dépôt WordPress : https://fr.wordpress.org/plugins/simply-static/
Configuration de Simply Static
Voici la configuration à mettre en place sur Simply Static :
- D’abord, s’assurer que tout est au vert dans l’onglet « Diagnostics » (si ce n’est pas le cas il faut veiller à bien installer les dépendances nécessaires pour le bon fonctionnement de l’outil)
- Dans l’onglet « General », choisir l’option « Offline usage »
- Dans l’onglet « Deployment Method », choisir « Local Directory » et indiquer un nom de répertoire dans lequel le site s’exportera en HTML. Par exemple « version_statique »

- Si vous avez privatisé votre site via la méthode « Basic Auth » (authentification via http), allez dans l’onglet « Misc » et entrez le login et mot de passe configuré pour débloquer l’accès au site.
Une fois l’application installée, assurez-vous que les fichiers html se créent bien dans le dossier /version_statique.
Si tel est le cas vous pouvez poursuivre, sinon il faut d’abord vous assurer que les fichiers se génèrent bien avant d’aller plus loin !
Configuration de Git / Syncro avec Github ou Gitlab
Pour ce projet j’utilise Github, mais toute autre solution similaire est utilisables.
Initialiser un Dépôt Git dans /version_statique
:
Accédez au sous-dossier /version_statique
sur votre serveur.
Initialisez un dépôt Git avec
git init
Configurer l’Authentification SSH pour GitHub :
Générez une clé SSH et ajoutez-la à votre compte GitHub pour permettre l’authentification. Vous pouvez suivre les indications de cette page pour configurer l’accès SSH : https://docs.gitlab.co.jp/ee/user/ssh.html (remplacez les occurences de Gitlab par Github si vous utilisez ce dernier).
NB : Je préciserai cette partie un peu plus tard, je me suis un peu cassé les dents dessus la première fois ^^
Ensuite il suffit de synchroniser le dossier qui va contenir les fichiers statiques du site avec le compte Github comme vous savez le faire habituellement.
git add .
git commit -m "Premier commit"
git remote add origin URL_DU_DEPOT
git push -u origin main
Créer un Script d’Auto-Commit et Push :
Pour faciliter le travail de push de la moindre modif, j’ai créé un petit workflow automatiquement qui push automatiquement la moindre modif repérée dans le dossier statique.
Voici ce qu’il faut faire en bref :
- Créer un script qui, lorsqu’il est exécuté, effectue un commit + push des modifs sur le dépôt Github
- Créer un service qui exécute ce script automatiquement dès qu’une modification est détectée dans le répertoire /version_statique
1. Création du script de push automatique
Commencer par installer le packet inotify
sudo apt-get update
sudo apt-get install inotify-tools
Voici le contenu du script Bash qui commit et push automatiquement vers Github :
#!/bin/bash
# Chemin du répertoire à surveiller
WATCHED_DIR="/chemin/vers/votre/dossier"
# Chemin du dépôt Git
GIT_REPO_DIR="/chemin/vers/votre/depot/git"
# Boucle infinie pour surveiller les modifications
while true; do
# Attendre pour toute modification dans le répertoire
inotifywait -r -e modify,create,delete,move $WATCHED_DIR
# Se déplacer dans le répertoire du dépôt Git
cd $GIT_REPO_DIR
# Générer le message de commit avec la date et l'heure
COMMIT_MESSAGE="Mise à jour automatique $(date '+%Y-%m-%d %H:%M:%S')"
# Ajouter toutes les modifications au dépôt
git add .
# Committer les modifications
git commit -m "$COMMIT_MESSAGE"
# Pousser les modifications
git push
done
Ensuite, rendre le scripte exécutable :
chmod +x git_auto_commit_push.sh
2. Créer un service qui exécute le fichier automatiquement au démarrage du système
Remplacez « my_script.service »
sudo nano /etc/systemd/system/my_script.service
Contenu du fichier service
[Unit]
Description=Mon script de commit et push automatique
[Service]
ExecStart=/chemin/vers/votre/script.sh
Restart=always
User=nom_utilisateur
Group=nom_groupe
[Install]
WantedBy=multi-user.target
Ensuite, recharger les daemons Systemd
sudo systemctl daemon-reload
Activer le service et le paramétrer pour qu’il démarre avec le système
sudo systemctl start my_script.service
sudo systemctl enable my_script.service
Puis journalisez le service :
sudo journalctl -u my_script.service
Vous pouvez faire un essai : ajoutez un article dans le blog, allez dans « Simply Static » -> « Generate Static Files ». En théorie si tout fonctionne correctement, le script génère un nouveau fichier html, le script bash détecte une modification dans le dossier /version_statique et déclenche le push automatique sur Github.