Les logiciels libres que nous utilisons

Depuis la fin du mois de septembre dernier, les outils numériques de la France insoumise sont intégralement basés sur des logiciels libres, et l’intégralité des données personnelles est hébergée en France.

Un logiciel libre est un logiciel dont l’utilisation, l’étude, la modification et la duplication en vue de sa diffusion sont permises, techniquement et légalement, ceci afin de garantir certaines libertés induites, dont le contrôle du programme par l’utilisateur et la possibilité de partage entre individus.

Wikipedia (29 novembre 2017)

Le logiciel libre est un des éléments clés de l’histoire de l’informatique moderne. C’est un ensemble d’outils techniques (des logiciels libres eux-mêmes) et légaux (les licences qui fournissent l’assurance qu’un logiciel reste libre). Aujourd’hui, l’internet repose sur une infrastructure de serveurs qui tournent très majoritairement grâce au système GNU/Linux. WordPress est utilisé par environ 30% (les sources varient) des 10 millions plus gros sites du monde.

Mais le logiciel libre est aussi un mouvement social. Des individus et des entreprises y participent, parce qu’elles estiment que dans ce domaine, le partage et la collaboration sont plus efficaces que la propriété privée des productions intellectuelles.

On voulait du coup produire cette liste des logiciels libres que nous utilisons à la France insoumise. D’abord par pur intérêt technique, mais aussi pour remercier et faire découvrir des projets collaboratifs qui existent parfois depuis plusieurs dizaines d’années. Forcément, cela fait un peu catalogue, mais ça permet aussi de mieux comprendre comment sont articulées les briques de la plateforme de la FI.

Ubuntu

C’est probablement un de ceux dont le nom est le plus connu du grand public. C’est une version du système d’exploitation GNU/Linux. Elle fait tourner les ordinateurs personnels d’Arthur et Guillaume, ainsi que les serveurs sur lesquels sont hébergés nos sites internets.

Elle est basée sur une autre version, existante depuis bien plus longtemps : Debian. Debian est un projet démocratique et collaboratif créé en 1993, doté d’une constitution, réunissant plusieurs milliers de volontaires à travers le monde.

WordPress

WordPress est un Système de gestion de contenu. En gros, un logiciel qui sert à faire des sites internets où l’on peut publier des pages et des articles. Il fait tourner au43.fr, lafranceinsoumise.fr ainsi que des dizaines de millions de sites internet.

Nous en avons besoin, car il faut que la publication de contenu et d’articles ne soit pas accessible aux seuls développeurs. Or, créer une interface de gestion de contenu aussi riche que celle de WordPress demanderait des années de travail.

Lorsque vous êtes sur https://lafranceinsoumise.fr, sans sous domaine particulier, vous êtes donc sur un site qui fonctionne grâce à WordPress.

Adjoint à Woocommerce, il permet de créer des boutiques en ligne. C’est ce qui est utilisé pour le site materiel.lafranceinsoumise.fr et dons.lafranceinsoumise.fr.

Pour faciliter l’utilisation de WordPress et de Woocommerce, nous utilisons quelques outils qui nous facilitent la tâche :

  • la stack roots.io nous permet de bénéficier des avantages des méthodes de développement moderne avec WordPress, et en particulier du versioning
  • Le plugin Elementor permet aux personnes qui publient du contenu de construire des pages graphiquement complexes avec un simple éditeur visuel.

Django

NationBuilder a été remplacé par une application entièrement écrite pour les besoins de la France insoumise, développée au quotidien par les auteurs de ce blog, composée de plus de 10 000 lignes de code.

Cette application est libre, écrite dans le langage de programmation Python. Vous pouvez trouver son code source en ligne.

Cette application n’est pas basée sur rien. Elle utilise ce qu’on appelle un framework : une sorte de boîte à outils logiciels qui permettent d’effectuer des tâches courantes plus facilement lorsque l’on écrit du code. Ce framework s’appelle Django. Il a été développé initialement par des journalistes américains au début des années 2000, et s’est depuis fortement complexifié pour devenir une référence majeure dans le monde du développement web. Il est associé à Django Rest Framework pour la gestion des API REST.

C’est probablement sur cette application que nous passons l’essentiel de notre temps de développement 🙂

Git

On aurait tendance à l’oublier, mais sans Git, notre travail serait complètement différent. Sans rentrer dans les détails techniques, c’est un logiciel qui permet le travail collaboratif. Lorsque que chacun fait à son poste des modifications sur un projet, Git se charge automatiquement de fusionner ces modifications. C’est comme si vous pouviez modifier chacun de votre côté un document texte, et que les corrections de tout le monde étaient automatiquement prises en compte une fois qu’elles étaient terminées.

Mailtrain

C’est un logiciel d’envoi d’emails en masse. C’est avec cet outil que nous envoyons les emails à tout⋅e⋅s les insoumis⋅es.

Mosaico

C’est un éditeur visuel d’emails, qui sert à la rédaction des messages envoyés avec Mailtrain. Cela permet à des utilisateurs non techniques de créer facilement des jolis emails par glisser/déplacer.


à partir de là, ça devient vraiment très technique

Ansible

C’est un logiciel d’automatisation de gestion de serveurs. On décrit dans des fichiers texte la configuration souhaitée d’un serveur, et celle-ci est automatiquement déployée sur nos machines.

Il est utilisé aussi pour le déploiement des applications : lorsque nous écrivons du code, nous publions les nouvelles version sur des dépôts publics (sur le compte GitHub de la France insoumise). Puis nous utilisons Ansible pour mettre à jour les serveurs depuis ces dépôts.

Ansible est aussi responsable de la gestion de nos sauvegardes automatiques. En cas de destruction totale de nos serveurs (ce qui est déjà hautement improbable), il nous faudrait quelques minutes pour déployer de nouveaux serveurs avec une configuration identique, et rétablir les données à partir de nos sauvegardes.

Côté langages

Si agir.lafranceinsoumise.fr est écrit sous Python (ainsi que l’application de billets électroniques de la convention), la plupart de nos petits projets (l’application procurations, le module d’authentification) sont écrits sous Node et Express.

Côté base de données

Redis, PostGres, SQLite.

Bref, un key-value store généraliste, et deux bases de données relationnelles selon la taille des projets.