Yoann Sculo

Technologie, généalogie, archivistique et libertés numériques

Djehooty : un nouveau logiciel libre pour la généalogie et la gestion d’archives numériques

Le

Depuis un an et demi, je consacre mon temps libre à un projet personnel de logiciel libre dédié à la généalogie. Je l’avais mentionné dans un précédent article et je suis très heureux d’ouvrir et présenter enfin mon projet.

Djehooty

Logo de l’application Djehooty représentant un ibis noir

Djehooty est un outil hybride qui croise plusieurs concepts de logiciels habituellement indépendants. C’est avant tout un outil de gestion des actifs numériques (DAM : Digital Asset Management) qui permet l’import, la manipulation, la visualisation, l’édition et l’enrichissement de documents. Mais c’est également un logiciel de généalogie d’aide à la recherche et à la saisie. Regrouper les deux permet de manipuler efficacement une grande quantité de documents numériques et de les inscrire dans des recherches généalogiques complexes.

Le nom fait référence au dieu Thot 𓁟, aussi appelé /d͡ʒɛhuːti/ (Djehouty) en égyptien ancien. Thot était le scribe et l’archiviste des dieux, mais aussi la divinité de la connaissance. Il a été aussi bien représenté par un babouin que par un ibis sacré 𓅞, animal que j’ai choisi comme logo. Ce clin d’œil à l’Égypte ancienne me plaît d’autant plus que mon histoire familiale s’y rattache à la fin du XVIIIe début du XIXe, avec l’orientaliste Antoine Isaac Silvestre de Sacy, professeur de Champollion et le botaniste Ernest Coquebert de Montbret, ayant participé à la campagne d’Égypte de Napoléon.

Ma priorité n’est pas de reproduire les fonctionnalités des autres logiciels de généalogie, mais de répondre d’abord à mon principal besoin : manipuler localement un grand nombre de documents liés à la généalogie. J’introduirai progressivement des fonctionnalités classiques telles que l’import GEDCOM, la visualisation, l’édition d’arbre, etc. Mais je souhaite tout d’abord me concentrer sur ce qui n’existe pas ailleurs.

Capture d’écran de Djehooty

Principes fondamentaux

La philosophie de Djehooty s’appuie sur plusieurs principes fondamentaux :

Logiciel libre

Djehooty est un logiciel libre que je publie sous licence AGPLv3. Les recherches généalogiques sont bien souvent le travail d’une vie. Il me paraît donc essentiel d’avoir le contrôle sur son logiciel, ses données et son arbre généalogique. Transmettre et partager son travail sur des formats ouverts est un élément clé pour moi qui coïncide avec les valeurs du libre qui me sont chères. Plutôt que vendre mon logiciel, j’ai préféré l’ouvrir pour vivre mes valeurs et mon intérêt pour les biens communs numériques. Ploum a fait germer en moi un peu de radicalité avec ses articles sur l’AGPL :)

Vie privée

À l’heure des enjeux de cybersécurité, de libération numérique et de réappropriation de mes données personnelles, j’aspire à plus de local et moins de solutions tierces sur du cloud. Protéger ses données personnelles de la marchandisation des données et des IA voraces est devenu pour moi une priorité.

Souveraineté des données

Les recherches généalogiques sur Internet nous amènent à mentionner des ressources distantes sur des sites tiers (Archives nationales, archives départementales, archives municipales, musées, Wikipedia, site personnels, etc.). On peut imaginer qu’Internet n’oublie jamais rien, mais c’est totalement faux et le web n’est hélas pas éternel. Les sites évoluent et disparaissent quotidiennement. Une ressource mentionnée à un instant t par une URL n’aura aucune garantie d’exister encore quelques années après. Internet est en ce sens extrêmement volatile. L’incroyable Wayback Machine d’Internet Archive ne peut hélas pas tout archiver.

Nous dépendons malheureusement du bon vouloir des sociétés qui éditent les outils et visionneuses utilisés par les institutions et musées, et qui modifient fréquemment la structure de leurs URLs. La moindre évolution a pour conséquence de casser toutes les références distantes qui auraient pu être collectées lors de nos recherches. Je peux donner l’exemple récent des archives de Paris qui ont déployé une nouvelle version de leur visionneuse Arkothèque. Toutes les références distantes aux actes d’état civil dans ma généalogie sont depuis inaccessibles, mais également toutes les pages Wikipedia les utilisant. Et même quand ils sont utilisés, ce qui n’est pas systématique, les permaliens ne sont jamais vraiment éternels.

Les outils de généalogie sont également sensibles au changement. Je peux donner l’exemple des URLs des arbres généalogiques sur Geneanet qui peuvent être rendues invalides au moindre ajout ou modification des prénoms ou du nom d’une personne.

Observant avec sidération ce qu’il se passe aux États-Unis vis à vis des archives, on ne peut que constater le risque de centralisation de l’information.

Simplicité technique et pérennité

Je fais le choix d’aller à contre-courant de la tendance actuelle à la complexification technique. Je privilégie autant que possible des choix techniques simples et sobres comme l’utilisation de fichiers ou bien le choix d’une simple base de données SQLite. Cela facilite l’installation, la sauvegarde et la transmission des recherches, y compris pour des personnes non techniques. J’espère, avec cette approche, garantir la durabilité et l’accessibilité des données sur le long terme.

Accessibilité

Je m’efforce de respecter les normes d’accessibilité numérique afin de garantir une utilisation optimale par toutes et tous, et notamment les personnes en situation de handicap visuel. J’ai notamment constaté dans ma famille élargie que le handicap visuel constitue un frein aux recherches généalogiques et une source de frustration pour les généalogistes âgés. Je suis encore en train de me former à la question. Le sujet s’avère aussi intéressant que complexe, mais c’est un axe qui me tient à cœur.

Capture d’écran de Djehooty

Pourquoi un nouveau logiciel ?

En 2024, plusieurs logiciels libres se rapprochaient de mes besoins (Gramps, Ancestris, Webtrees, Tropy), mais sans vraiment correspondre à tout ce que j’avais en tête.

Je souhaitais aussi :

  • Apprendre les langages et technologies modernes Go et React/Typescript à travers un projet personnel ;
  • Proposer une interface web moderne et accessible ;
  • Proposer des recherches généalogiques et historiques documentaires et croisées, pas uniquement centrées sur la notion d’arbre généalogique ;
  • Offrir une application fonctionnant localement, sans dépendance à un serveur tiers ;
  • Offrir une solution portable et facile à installer ;

Tropy se rapproche beaucoup de ma vision, mais le projet ne gère que les images. Y intégrer tous mes besoins aurait dénaturé l’objectif initial de l’application.

J’avais aussi envie de créer mon propre projet de A à Z pour répondre précisément à toutes mes attentes.

Architecture

Djehooty se compose actuellement de deux blocs logiciels distincts :

  • djehooty-backend : Backend développé en Go, en charge des opérations sur les fichiers et la base de données locale SQLite.
  • djehooty-frontend : Frontend développé en React / Typescript, en charge de l’interface graphique exposée à l’utilisateur.

Les deux communiquent via une API REST.

Perspectives futures

Objectifs court terme

Je voulais rendre Djehooty utilisable rapidement : je publie donc cette première version, que je considère comme minimale. J’ai commencé par la gestion des fichiers, des documents et des individus. J’ajouterai ensuite progressivement d’autres fonctionnalités, par exemple :

  • Prise en charge des vidéos, audios et PDF
  • Support des dates et des lieux
  • Import de fichiers depuis une URL classique ou au format IIIF pour télécharger des documents depuis des sites institutionnels.
  • Support avancé des métadonnées.
  • Transcription des documents
  • Moteur de recherche avancé
  • Internationalisation (français/anglais)

Objectifs moyen terme

J’aimerais proposer différentes distributions de Djehooty.

Pour le moment, je distribue Djehooty via une image Docker offrant la portabilité de l’application sur différents systèmes d’exploitation. Cette méthode présente toutefois deux inconvénients : la dépendance à Docker et la taille de l’image téléchargée.

J’envisage une version desktop, utilisant Wails et embarquant backend et frontend dans un version simple à distribuer pour le grand public.

Si le besoin se présente, j’envisage aussi une version serveur utilisant Docker, et permettant de faire tourner backend et frontend côté serveur, offrant la collaboration entre plusieurs utilisateurs sur une même base de données. À la façon de draw.io qui propose une version desktop et une version serveur.

Objectifs long terme

À plus long terme j’aimerais beaucoup proposer des fonctionnalités de recherche via une plateforme collaborative, à l’instar d’OpenStreetMap et OpenFoodfacts, mais dédiée à la manipulation de données sous licence ODbL issues de l’indexation d’archives. Ce service pourrait être requêté par Djehooty pour rechercher dans des fonds, registres, annuaires, … J’y reviendrai dans un prochain article.

Comment tester ou contribuer ?

L’installation, rendue relativement simple par Docker, est détaillée sur le site de Djehooty, même si cela reste encore un peu technique.

Je suis très intéressé par tout commentaire, remarque, proposition, avis sur Djehooty. Si vous trouvez un bug dans Djehooty ou que vous avez des idées de fonctionnalités que je n’aurais pas encore mentionnées, n’hésitez pas à me le remonter sur Codeberg, par email ou sur Mastodon.

J’ai rédigé un manuel de contribution à Djehooty et mis en place un code de conduite. Que vous soyez développeur·euse, utilisateur·trice ou simplement intéressé·e par le projet, votre contribution est la bienvenue. Si vous savez développer en Go ou en React / Typescript, je suis très intéressé par une revue de code de djehooty-backend et djehooty-frontend. Je me suis formé au Go, React et Typescript pour l’occasion. Je viens des systèmes embarqués, du monde du bas niveau et du système d’exploitation. Ces langages sont encore nouveaux pour moi et je n’ai pas encore eu l’opportunité d’échanger sur mon code et mes choix d’implémentation. Je suis donc preneur d’avis extérieurs.

Djehooty est encore très loin d’être complet, mais j’espère qu’il pourra intéresser et aider d’autres passionné·e·s de généalogie et d’archives.

« Précédent