--- date: 2024-10-30 title: Un mirroir pour le site du projet Haiku description: Comment j'ai créé un pirroir pour le site principal du projet Haiku à l'aide d'un simpls script Bash. authors: - yann64 slug: mirroir-haiku toc: false draft: false category: Informatique tags: Haiku --- Dans la mesure du possible, le projet Haiku essaye d’être auto hébergé. Cela n’est pas sans contrainte pour un projet aux ressources encore limitées, et il arrive parfois que l’hébergement officiel ne soit pas accessible. J’ai donc créé un script permettant de réaliser un mirroir du site principal et ainsi pouvoir accéder aux informations quand l’hébergement principal n’est pas accessible : https://barbel.synology.me/haiku/ Pour ce faire, j'utilise le script Bash suivant : ```bash # Changer les valleurs suivantes pour configurer votre mirroir # Chemin de l'exécutable Hugo HUGO_PATH="/path/to/hugo" # Titre du site mirroir MIRROR_TITLE="Haiku Project (Yann64's Mirror)" # UTL du mirroir (doit se terminer avec un slash '/') MIRROR_BASEURL="https://barbel.synology.me/haiku/" # Chemin racine du server web MIRROR_ROOTPATH="/opt/http" # Chemin complet du repertoire de stockage du mirroir MIRROR_LOCALPATH="/opt/http/haiku" # Mise à jour du mirroir à la dernière version echo "==> Clone website from the official repository :" git clone https://github.com/haiku/website.git cd website sed -i "s/title = \"Haiku Project\"/title = \"$MIRROR_TITLE\"/" ./config.toml sed -i "s@baseURL = \"https://www.haiku-os.org/\"@baseURL = \"$MIRROR_BASEURL\"@" ./config.toml # Décommenter les lignes suivantes et modifier pour changer la source des tickets d'évolution #sed -i "s@'https://cgit.haiku-os.org/haiku/commit/?id='@'https://git.barbel.synology.me/Haiku/haiku/commit/'@" ./static/js/activity.js #sed -i "s@https://cgit.haiku-os.org/haiku/log/@https://git.barbel.synology.me/Haiku/haiku/commits/branch/master@ " ./themes/shijin4/layouts/partials/home.html echo "==> Site generation using Hugo :" $HUGO_PATH echo "==> Copy files to destination forlder: "$MIRROR_LOCALPATH cd public cp -r * $MIRROR_LOCALPATH cp -r ./images $MIRROR_ROOTPATH echo "==> Cleaning" cd ../.. rm -rf ./website # Update userguide to latest version echo "==> Clone userguide from the official repository :" git clone "https://review.haiku-os.org/userguide" cd userguide echo "==> Copy files to destination forlder: $MIRROR_LOCALPATH/docs" cp -r * "$MIRROR_LOCALPATH/docs" echo "==> Cleaning" cd .. rm -rf ./userguide echo "Done !" ```