Aller au contenu

Toi aussi, déploie le site Geotribu chez toi#

📆 Date de publication initiale : 30 décembre 2020

Pré-requis : une connexion internet.

Trop tard !

La méthode présentée ici ne fonctionne plus depuis cette PR de mai 2023 qui a basculé le déploiement du site sur les GitHub Pages hors de la branche gh-pages.

Intro#

icône matière

A l'instar de nombreux sites webs, Geotribu est un site statique, cela signifie :

  • qu'il n'y a pas de base de données,
  • que les appels au serveur web ne sont que des GET
  • que ce dernier ne fait que retourner des fichiers HTML, CSS, JavaScript et les éventuels contenus binaires (images...).

C'est un gage de plein de mots-clés : légèreté, réactivité, faible maintenance, bonne résilience et sécurité.

Mais c'est surtout un bon moyen de jouer avec un site web sans se casser la tête !

Commenter cet article

Pour mieux se rendre compte de la légèreté et de la facilité des sites statiques, faisons un exercice simple de mise en pratique : déployons le site actuel de Geotribu sur notre ordinateur en 2 étapes.

1. Télécharger le site de production#

Commençons par télécharger la dernière version du site en production et dézipper le tout.

Pour les personnes facturées au clic sur les interfaces graphiques, voici la petite commande qui va bien :

cd /tmp \
    && wget -N -c https://github.com/geotribu/website/archive/gh-pages.zip -O geotribu_website_prod.zip \
    && unzip -o -q geotribu_website_prod.zip \
    && cd website-gh-pages \
    && nautilus .
Set-Location -Path "$env:TEMP"; `
Invoke-WebRequest -Uri "https://github.com/geotribu/website/archive/gh-pages.zip" -OutFile geotribu_website_prod.zip ;`
Expand-Archive -Path geotribu_website_prod.zip -DestinationPath . -Force ;`
cd website-gh-pages ;
explorer .

On peut déjà observer que le site ne pèse que ~25 Mo compressé et ~110 Mo décompressé, pour un contenu de presque 600 pages (articles, revues de presse, guides de contribution, pages d'équipe, etc.). Et encore, le fichier d'index de la recherche (search/search_index.json) pèse à lui seul près de 50 Mo.

jmo@jmoslandia:/tmp/website-gh-pages$ ls -al .
total 496
drwxrwxr-x 14 jmo  jmo    4096 déc.  29 19:39 .
drwxrwxrwt 30 root root  12288 déc.  30 13:06 ..
-rw-rw-r--  1 jmo  jmo  143384 déc.  29 19:39 404.html
drwxrwxr-x  2 jmo  jmo    4096 déc.  29 19:39 acknowledgements
drwxrwxr-x 12 jmo  jmo    4096 déc.  29 19:39 articles
drwxrwxr-x  5 jmo  jmo    4096 déc.  29 19:39 assets
-rw-rw-r--  1 jmo  jmo      19 déc.  29 19:39 CNAME
drwxrwxr-x  9 jmo  jmo    4096 déc.  29 19:39 contribuer
drwxrwxr-x  2 jmo  jmo    4096 déc.  29 19:39 dicogis
-rw-rw-r--  1 jmo  jmo   42105 déc.  29 19:39 feed_rss_created.xml
-rw-rw-r--  1 jmo  jmo   40284 déc.  29 19:39 feed_rss_updated.xml
-rw-rw-r--  1 jmo  jmo  102918 déc.  29 19:39 index.html
drwxrwxr-x  2 jmo  jmo    4096 déc.  29 19:39 install_webapp
-rw-rw-r--  1 jmo  jmo     442 déc.  29 19:39 manifest.webmanifest
drwxrwxr-x 14 jmo  jmo    4096 déc.  29 19:39 node
-rw-rw-r--  1 jmo  jmo       0 déc.  29 19:39 .nojekyll
drwxrwxr-x 13 jmo  jmo    4096 déc.  29 19:39 rdp
-rw-rw-r--  1 jmo  jmo      97 déc.  29 19:39 robots.txt
drwxrwxr-x  2 jmo  jmo    4096 déc.  29 19:39 rss
-rw-rw-r--  1 jmo  jmo     116 déc.  29 19:39 rss.xml
drwxrwxr-x  2 jmo  jmo    4096 déc.  29 19:39 search
-rw-rw-r--  1 jmo  jmo   81602 déc.  29 19:39 sitemap.xml
-rw-rw-r--  1 jmo  jmo    2656 déc.  29 19:39 sitemap.xml.gz
drwxrwxr-x 16 jmo  jmo    4096 déc.  29 19:39 team
drwxrwxr-x  3 jmo  jmo    4096 déc.  29 19:39 theme
jmo@jmoslandia:/tmp/website-gh-pages$ du -sh .
112M    .
jmo@jmoslandia:/tmp/website-gh-pages$ du -sh search/
47M search/

Evidemment, ce dossier ne contient pas les images, hébergées sur un serveur à part et sauvegardées mensuellement en tant que release sur GitHub. A titre d'exemple, la sauvegarde de novembre pèse 422 Mo.

Fernand Léger - Les constructeurs

2. Servir le site#

En ouvrant simplement le fichier index.html, on voit déjà apparaître la page d'accueil dans son navigateur par défaut. Mais le site étant configuré pour avoir des URLs correspondant au titre de la page sans l'extension .html, la navigation n'est donc pas fonctionnelle, le navigateur se comportant davantage comme un explorateur de fichiers.

Le site sans serveur web

Si on veut avoir le site pleinement fonctionnel, il suffit donc de "servir" le dossier par un... serveur web 👏. Parce-que déployer un serveur web n'est pas du tout le sujet, utilisons les outils minimalistes intégrés à de nombreux langages :

Avec bash :

$ python3 -m http.server 8085
Serving HTTP on 0.0.0.0 port 8085 (http://0.0.0.0:8085/) ...

Avec Powershell :

PS > py -3 -m http.server 8085
Serving HTTP on 0.0.0.0 port 8085 (http://0.0.0.0:8085/) ...

$ npx serve -l 8085
npx : 78 installé(s) en 3.27s

┌──────────────────────────────────────────────────┐
                                                     Serving!                                                                                            - Local:            http://localhost:8085         - On Your Network:  http://192.168.1.25:8085                                                        Copied local address to clipboard!                                                               └──────────────────────────────────────────────────┘

Ouvrir le navigateur sur l'adresse http://localhost:8085 et vous devriez avoir le site en local, pleinement fonctionnel. Si les images n'apparaissent pas, c'est que vous n'accédez pas à https://cdn.geotribu.fr.

Et voilà, vous avez le site Geotribu sur votre ordinateur 😄 !


Auteur·ice#

Julien MOURA#

Portrait Julien Moura

Géographe "sigiste" de formation, j'ai travaillé sur différentes thématiques et types de structures : gestion des déchets en milieu urbain à Madagascar, foncier d'intérêt général auprès de l'EPF de La Réunion, organisation et la résilience urbaine face aux risques naturels à Lima pour l'IRD, gouvernance et ouverture des données à Isogeo.

Je travaille désormais à Oslandia.
Féru des dynamiques de contributions, je participe activement à Geotribu depuis fin 2011.

Commentaires

Afin de favoriser les échanges constructifs, merci de préférer le pseudonymat à l'anonymat. Pour rappel, l'adresse mail n'est pas exposée publiquement et sert principalement aux notifications de réponse. Les commentaires sont automatiquement republiés sur nos réseaux sociaux pour favoriser la discussion. Consulter la page sur la confidentialité et les données personnelles.
Une version minimale de la syntaxe markdown est acceptée pour la mise en forme des commentaires.
Propulsé par Isso.

Ce contenu est sous licence Creative Commons BY-NC-SA 4.0 International Pictogramme Creative Commons Pictogramme Creative Commons BY Pictogramme Creative Commons NC Pictogramme Creative Commons SA