Étude de cas : création d'une plateforme de sites web sécurisée pour petites mairies

Les syndicats La Fibre Numérique et Somme Numérique ont lancé le projet « Mairies Connectées » pour les communes de moins de 2 000 habitants, en partenariat avec divers organismes publics et le soutien de fonds Européens Réact-EU. L'objectif de ce programme est de fournir des services numériques essentiels aux petites collectivités, leur permettant d'accéder à des outils performants de gestion en ligne, sécurisés et abordables.

Objectifs de la mission

Gassagosso a été chargé de développer :

  • une plateforme centralisée de gestion pour plusieurs centaines de sites de mairies
  • une interface sécurisée de gestion de contenu pour les agents municipaux
  • l'automatisation des certificats HTTPS avec Let's Encrypt
  • une infrastructure de publication en sites statiques
  • un choix parmi trois thèmes graphiques personnalisables

Organisation du projet de développement web : suivi et collaboration

La gestion du projet a impliqué des réunions régulières avec toutes les parties prenantes : maîtrise d'ouvrage, graphiste, et maîtrise d'œuvre. Chaque réunion incluait :

  • un retour sur les développements en cours
  • une présentation des nouveaux modules
  • des ateliers de spécification pour les prochaines étapes

Choix techniques : performance, sécurité et simplicité

La plateforme repose sur deux principaux composants :

  • Serveur web Caddy : utilisé pour la gestion automatique des certificats SSL et la configuration HTTP via API REST
  • Application d'administration sur mesure : développée en Elixir et Phoenix, elle permet une gestion optimale des performances sans base de données, en stockant les données sous forme de fichiers XML

Interface d'administration des sites : fonctionnalités et services

L'application d'administration propose des fonctionnalités adaptées aux besoins spécifiques des mairies :

  • Créer / Modifier / Supprimer un nouveau site internet mairie
  • Compilation des sites statiques avec theming
  • Publier / Dépublier un site
  • Ouvrir l'accès à une mairie pour renseigner son actualité
  • Gestion de comptes utilisateurs
  • Journaux d'accès aux sites (logs)
  • Paramétrage de la plateforme

Pour l'interface d'administration des sites, nous avons choisi de créer une application spécifique sur-mesure en utilisant le langage de programmation Elixir et son framework web Phoenix.

En effet, après étude des offres de générateurs de site statique sur le marché, nous en avons conclu que l'intégration d'un logiciel existant serait finalement plus complexe. Certes, ces logiciels proposent souvent davantage de fonctionnalités de gestion de contenus, toutefois, certaines de ces fonctionnalités étaient inutiles et/ou ils ne proposaient pas de gestion multi-sites. Nous avons donc proposé une application sur-mesure, développée en Elixir et Phoenix : une pile technique nous permettant de créer rapidement des interfaces web dynamiques, sécurisées, performantes et asynchrones.

Nous avions comme contrainte supplémentaire de ne pas utiliser de base de données : les données des sites internet sont donc stockées sous forme de fichiers .xml situés sur le serveur.

La lecture des ces fichiers sur le disque dur est peu performante, nous avons cependant pu tirer partie de librairies comme `:ets` - nativement présente avec Elixir - qui nous ont permis d'utiliser au maximum la mémoire vive du serveur et de proposer ainsi une recherche quasi instantanée sur l'ensemble des sites internet gérés par la plateforme. Tout cela sans sacrifier la facilité de déploiement et d'exploitation car nous n'avons pas eu besoin d'installer d'autres services comme redis par exemple.

Création des thèmes graphiques

En partenariat avec la graphiste Flore Millet, nous avons conçu trois thèmes graphiques : « ville au vert  », « classique » et « dynamique ». Adaptés aux petites communes, ces thèmes offrent une identité visuelle sobre et réutilisable, idéale pour les municipalités de moins de 2 000 habitants. Les mairies peuvent sélectionner l'un des trois thèmes en fonction de leurs préférences.

Le défi pour cette création graphique était de proposer des designs attrayants sans imposer une identité visuelle trop marquée, étant donné la réutilisation des thèmes par plusieurs communes.

Exposition des sites et gestion sécurisée

Le serveur web Caddy a été sélectionné pour servir les sites des mairies, principalement pour deux raisons :

  • Gestion automatique des certificats SSL avec Let's Encrypt : Caddy permet de générer et de renouveler automatiquement les certificats de sécurité, garantissant une connexion sécurisée pour les utilisateurs
  • Configuration dynamique via API REST : Grâce à l'API REST de Caddy, l'application d'administration des sites peut ajuster la configuration du serveur en temps réel. Cela inclut des actions telles que la publication ou la dépublication d'un site, directement depuis l'interface d'administration

De plus, Caddy offre la possibilité d'envoyer ses journaux d'accès via une socket TCP. Nous avons ainsi intégré cette fonctionnalité dans notre interface d'administration, permettant aux gestionnaires de visualiser en temps réel l'état du service et l'activité des sites.

Conclusion

Parfois, la meilleure solution est de réinventer une roue spécifique à son véhicule. On ne compte plus les roues inventées, et heureusement d'ailleurs… les trains d'atterrissage des avions n'utilisent pas des roues de vélos !

Nos clients ont besoin d'une roue spéciale, nous la développons.

Dans le cas présenté ci-dessus, nous sommes fiers d'avoir contenu une demande complexe d'un point de vue système dans une application simple d'usage, élégante et performante. L'alternative eut été la création d'un système complexe à maintenir et à administrer, avec de nombreux services et interfaces différents : un vélo avec des roues de tracteur en somme !

Par ailleurs, la maîtrise d'ouvrage a lancé la conversion de cette application en logiciel libre, nous nous en félicitons et sommes heureux d'accompagner la libération de notre code : c'est notre meilleure récompense !

Prêt à transformer vos idées en outils digitaux performants et durables ?

Découvrez comment Gassagosso peut vous aider à atteindre vos objectifs.

Contactez-nous pour discuter de votre projet de développement web sur mesure.