
<aside> <img src="/icons/list-indent_blue.svg" alt="/icons/list-indent_blue.svg" width="40px" /> Table des matières
<aside> <img src="/icons/chat_blue.svg" alt="/icons/chat_blue.svg" width="40px" /> 📢 Français
📢 English
</aside>
</aside>

<aside> ℹ️ Deux nouveaux modules, à coté de Gramps, viennent de faire leur apparition dans la galaxie de ses addons. Le premier permet de découpler la base de Gramps de son affichage et ainsi permettre à un programme tiers d'interagir avec ses données comme s'il était l'utilisateur derrière son écran. Le second interagit avec le premier pour permettre à Gramps de s'afficher sur une page web.
Comme tout ça est un peu technique, tout d'abord un peu d'explication du jargon et de l'intérêt de ces modules puis quelques copies d'écrans pour illustrer ce que ça donne.
</aside>
Un ordinateur: une machine, un système informatique physique, on y fait tourner un système d'exploitation (Windows, Linux...) qui permet d'interagir avec lui pour y faire tourner des programmes tels que Gramps.
Une VM, machine virtuelle, elle tourne dans un programme particulier qui sert à le faire passer pour un ordinateur physique. On peut, au sein de son ordinateur, faire tourner ce programme et au sein de celui-ci faire tourner plein de machines virtuelles ayant chacune leur système d'exploitation, pas forcément le même que celui de la machine physique, ces VM font tourner des programmes tels que Gramps.
Docker, un programme, un peu comme celui qui permet de créer et gérer des machines virtuelles, mais lui, sa fonction est de gérer des "containers". Chaque container contient un peu ce qu'on veut: une base de données, un serveur web, une application, ... qui peuvent être agrégés afin de ne faire qu'un seul container, ou chaque composant disposant de son container, et plusieurs interagissant entre-eux si on le souhaite. On peut y faire tourner la Webapi Gramps, un programme qui interroge le programme Gramps qui tourne sur son ordinateur ou sur une VM ou même dans un container quelque part sur le réseau, son réseau ou quelque part dans le cloud. La Webapi réplique la base de données de Gramps, et permet d'interroger les données afin de les transformer en pages web qui peuvent alors être affichées dans n'importe quel navigateur en s'adressant au serveur web d'un des containers.
Le backend, c'est à dire la Webapi discute avec Gramps et le frontend. Le frontend, c'est à dire la partie en charge de la génération des pages html, Gramps.js, discute avec le serveur web et celui-ci avec le navigateur internet.
La Webapi permet de lire et écrire les données, c'est à dire qu'on peut interroger sa base Gramps à distance mais qu'on peut aussi la modifier à distance. Et comme il existe un service web (le frontend Gramps.js), rien n'empêche de travailler à plusieurs sur une base Gramps, la Webapi servant d'intermédiaire unique avec Gramps puisque celui-ci, tel qu'il est conçu, ne sait gérer qu'un seul utilisateur.
Le backend, c'est à dire la Webapi qui discute avec Gramps ainsi que le frontend, c'est à dire la partie en charge de la génération des pages html, Gramps.js, sont ici:
Installer Docker sur son ordinateur est aussi simple que d'installer n'importe quel autre programme.
Installer et y faire tourner un container conçu par quelqu'un d'autre et disponible dans un dépôt en ligne l'est tout autant, via une simple commande, d'où l'intérêt de la technologie Docker. Les containers n'ont même pas besoin de tourner tous sur la même machine, il leur suffit de pouvoir communiquer entre-eux via le réseau. D'où par exemple le fait de pouvoir déporter tout ça sur son serveur NAS si on en a un:
Oui, à suivre, car il me faut maintenant passer de la théorie à la pratique; installer cet ensemble et le tester. Voir ce qu'on peut faire avec, et rapporter tout ça dans un futur article.
<aside> <img src="/icons/arrow-turn-left_blue.svg" alt="/icons/arrow-turn-left_blue.svg" width="40px" /> Retour au blog Ma généalogie avec Gramps
</aside>
<aside> <img src="/icons/info-alternate_blue.svg" alt="/icons/info-alternate_blue.svg" width="40px" /> Et pour en savoir plus
</aside>
<aside> <img src="/icons/shuffle_blue.svg" alt="/icons/shuffle_blue.svg" width="40px" /> Une page au hasard
</aside>