Enquête Framalab : ce sont vos besoins qui comptent
Partagez vos retours et besoins sur les outils en ligne présentés sur Framalab en vous exprimant dans notre enquête. Vous avez 15 jours pour contribuer ainsi à Framasoft !
Framalab, un labo pour tester des services libres
Il y a trois mois, Framasoft ouvrait Framalab, un laboratoire ouvert à toustes, qui permet de tester des services libres en ligne.
Notre objectif est de savoir si de tels outils peuvent répondre à vos besoins, à vos attentes, et quelles améliorations leur apporter pour que vous les adoptiez.
Ces logiciels libres sont proposés « tels que développés par leur communauté » et vous permettent de :
Essayer et s’exprimer, une autre manière de contribuer
Pour savoir comment vous aider à émanciper vos pratiques numériques, le mieux c’est encore de s’adresser : à vous ! C’est bien beau de vous proposer de tester les outils du laboratoire Framalab (et allez-y, hein : ça reste ouvert !) ; mais c’est quand même mieux de savoir ce que vous pensez de ces tests.
Du 24 septembre au 8 octobre, nous ouvrons donc une enquête Framalab, afin de récolter vos avis et vos besoins !
Répondre à cette enquête devrait vous prendre 10-15 minutes. Ces retours seront précieux pour Framasoft, car ils nous permettront de mieux décider sur quels services concentrer notre travail.
Nous sommes aussi persuadées que vos réponses à cette enquête seront importantes pour les communautés développant ces logiciels libres, et pour d’autres qui pourront s’en inspirer. C’est pourquoi nous nous engageons à en publier les résultats (après les avoir dépouillés et anonymisés, bien entendu ^^).
A new application for Framaspace : OwnershipTransfer
Still more features on Framaspace? Yes! At the moment, we’re spoiling the users of this service, with the integration of quite a few features like the Forms and Tables applications, but also the ‘Intros’ app developed by Val, our summer intern. And because it’s Val, it’s festival (shameful rhyme!): just before leaving us for a well-deserved holiday and a final year of studies, he delivered a new ‘Ownership Transfer’ application that will make life easier for administrators of Framaspace spaces.
Hi Val, we’re not going to ask you to introduce yourself, as you already did in the previous interview. We’ll just remind you that you’re doing an internship at Framasoft from the beginning of May to the end of August 2024, with the aim of developing tools to support Framaspace, and therefore Nextcloud free software.
Hi! Check out my previous interview to find out more about me! I introduce Intros, a Nextcloud app to help users get to grips with Framaspace.
At the end of the interview, I mentioned I was working on another Nextcloud app, OwnershipTransfer. Back then things were only getting started, but I cooked, and now it’s ready.
OK, so let’s talk about the OwnershipTransfer App. What’s it for ? Who is the target audience ?
As mentioned in the previous article, OwnershipTransfer makes it possible to transfer data from one user to another in Nextcloud. For example, when someone leaves an association that uses Nextcloud (say, on Framaspace 😏), it can be useful to move their files to another user before deleting their account. You could avoid losing important archives, invoices… The same goes for calendars or address books.
Well worry no more, OwnershipTransfer (or « OT » from now on in this article) does all that. It allows Nextcloud admins to transfer data from whoever to whoever. Initially mostly designed for files, I extended it to calendars and contacts transfer.
OT allows a transfer of all the data, but also a more fine-grained choice. One can choose the calendar, address book or folder they want to transfer, so they don’t end up with someone’s holidays pictures in their files.
Screenshot of Ownership Transfer (also available in English)
Screenshot of Ownership Transfer (also available in English)
But… didn’t this feature already exist in Nextcloud ?
It did, but not the way we wanted it to.
Nextcloud already allows transferring your own files to another user, with a small graphical interface in the user settings section. You can only transfer your own files to another user, but not choose a source user: this isn’t suitable for an instance admin who would want to move files from one user to another.
An instance admin can also transfer files or calendars from one user to another, with an OCC command. OCC is Nexctloud’s CLI, via which admins can handle some server settings. You can only use it from the command line in a terminal, which to most human beings is… cryptical.
In short there are existing working solutions, but not with a simple graphical interface for admins. This is especially an issue in « Nextcloud farms » (an organization hosting Nextcloud instances for a lot of clients at once) like Framaspace, because admins don’t have access to the CLI in this case.
Technically, how does it work ?
Since it’s integrated with other Nextcloud apps, OT is heavily relying on existing Nextcloud APIs. The app also uses adapted parts of Nextcloud’s code. For example, I use the code from the existing files transfer feature, which I modified to fit with our requirements. The same goes for the calendar transfer.
However, I add to implement the contacts transfer, since it is not available in Nextcloud (not even through a cryptic CLI). It looks a lot like the calendar transfer, since both of them are based on the WebDAV protocol, so I had an example to work with.
The interface is built with Nextcloud’s Vue components, of course. They are pretty pleasant to use, and new ones are often released. It allowed me to build a complete graphical interface in no time, while staying consistent with the rest of Nextcloud’s UI.
Have you encountered any technical or organisational problems?
Since Nextcloud’s documentation hasn’t miraculously grown since last time, I had to wander around in Nextcloud’s source code to find the functions needed. I could almost make a hobby out of that. Almost.
At least the features exist in Nextcloud already, so adapting them wasn’t the most difficult thing ever. I could also rely on tcit’s advice, co-director of Framasoft and Nextcloud contributor. In short: I write code, he looks at it, says « cool thing, but not scalable », and I correct it.
Scalability was the most common problem. It always works on my small test environment with 5 accounts and 7 folders, but it should also (and most importantly) work on big Nextcloud instances with lots of files. For example, the files transfer can take a lot of time and resources: it has to move all the files from the source to the destination folder, which takes more or less time depending on the amount of files to move and the underlying storage type. Because of that, it is handled in the background: instead of launching it upon receiving the request, it is placed in a jobs queue that the server periodically handles.
Calendar and contacts transfers do not have this issue: they only consist of a simple SQL query to change the right property on the right element. This operation is fast, so it can be handled in the foreground.
Besides the actual transfer, building the interface was also challenging. The app allows the admin to choose which element will be transferred, so they need an interface to choose it. For calendars and contacts, it’s fairly simple: with Nextcloud’s components, I could easily build a list of calendars or address books. But for files, things are getting complicated: we need a whole tree-style view to show the subfolders’ content.
Luckily, I’ve got back up. Romain, former fellow INSA Lyon student (in Telecom, just like me!) and former Framasoft intern, worked on Sorts a few years ago. The goal was to make an app to enhance Nextcloud’s file search, mostly with filters. And Sorts has something I was really interested in: a tree-style files view. Exactly what I needed.
Interface adapted to OT for choosing the file to be transferred
After a few tweaks here and there in Sorts’ code, which wasn’t necessarily easy, its tree-style view perfectly integrated with OwnershipTransfer. It helped a lot and saved a lot of dev time, and I could even improve it a bit with some lines to better view the current folder and some sharing icons.
Now that your internship is coming to an end, and you’ve been « eating » some Nextcloud for the past 6 months, what are your potential takes on this software ?
It’s rant time!
Anyways, besides the rant and all the things I could blame on Nextcloud (like its lightweight documentation, its occasional slowness or its imperfect UI), its a very functional software, and it’s all that matters for pretty much everyone. It could be better (and it’s already happening!), but I find it to be working just fine for most typical usages. I’ve been using it for 2 years on a Raspberry PI to backup my files and photos, and I’ve never had any major issues with it.
However, its collaborative features can definitely get better (things like multiple people writing on the same text or calc document at the same time), especially since they are very popular among the people who use Nextcloud. These features exist, but they are typically hard to use, especially the first time, and poorly optimized. So when I see Nextcloud bragging about how they now have AI integrated (which I think most people don’t find that useful anyway), while opening a shared file sometimes still causes a mess… I think they could focus on more important things. But I guess you do need something to make it look shiny.
We’ve been very very pleased and satisfied to work with you over the last few months! Any final words?
I was delighted to work at Framasoft! I’ve learned a lot through this internship, and I want to thank the association again for its welcoming and comfortable working conditions.
Right now it’s time to relax, for me at least (before going to « class » again, but don’t mention it), and then to go back to work on my final internship at the beginning of next year! I’m just saying, of course 😉
Une nouvelle application pour Framaspace : OwnershipTransfer
Encore des nouveautés sur Framaspace ? Et oui ! En ce moment, on gâte les utilisateur⋅ices de ce service, avec l’intégration de pas mal de fonctionnalités comme les applications Forms et Tables, mais aussi l’app « Intros » qu’a développée Val, notre stagiaire estival (rime riche !). Et comme c’est Val, c’est festival (rime honteuse !) : juste avant de nous quitter pour des vacances bien méritées et une dernière année d’études, il nous a livré une nouvelle application « Ownership Transfer » qui facilitera la vie des administrateur⋅ices d’espaces Framaspace.
Bonjour Val, on ne va pas te proposer de te présenter, car tu l’as déjà fait dans la précédente interview. On rappellera juste que tu es en stage à Framasoft de début mai à fin août 2024, avec pour objectif de développer des outils d’accompagnement à Framaspace, et donc au logiciel libre Nextcloud.
Salut ! N’hésitez pas à aller lire ma précédente interview pour en savoir plus sur moi ! J’y parle d’Intros, une application pour faciliter la prise en main de Framaspace.
A la fin de l’interview, je parle d’une autre application Nextcloud sur laquelle je travaillais, OwnershipTransfer. À l’époque c’était encore en cours de préparation, mais depuis j’ai cuisiné, et maintenant c’est prêt.
OK, donc, parlons de l’App Ownership Transfer. À quoi sert-elle ? Quel est le public visé ?
Comme indiqué dans l’article précédent, OwnershipTransfer sert à transférer des données d’un⋅e utilisateurice à l’autre dans Nextcloud. Par exemple, lorsqu’une personne quitte une association qui utilise du Nextcloud (sur Framaspace, au hasard 😏), il peut être bien pratique de transférer ses fichiers avant de supprimer son compte. Cela permet d’éviter de perdre des archives importantes, des factures,… De même pour ses agendas, ou même ses carnets d’adresses.
Ça tombe bien, OwnershipTransfer (qu’on abrégera par la suite « OT ») fait tout ça. Elle permet aux administrateur⋅ices d’un espace Nextcloud de transférer les données de n’importe qui vers n’importe qui. À l’origine surtout destinée au transfert de fichiers, j’ai pu étendre l’application au transfert d’agendas et de contacts.
OT permet de transférer toutes les données d’une application, mais aussi de choisir plus finement ce qui devra être transféré. On peut ainsi choisir l’agenda, le carnet d’adresse ou un dossier à transférer, pour éviter de se retrouver avec les photos de vacances de quelqu’un d’autre dans ses fichiers.
Mais… cette possibilité n’existait pas déjà dans Nextcloud ?
Si, mais pas exactement comme on le voulait.
Nextcloud permet déjà de transférer ses propres fichiers à une autre personne, via une petite interface graphique dans les paramètres utilisateurs. On peut là uniquement transférer ses propres fichiers vers un autre utilisateur, mais pas choisir l’utilisateur source : ce n’est pas une solution pour les admins d’espace qui voudraient transférer des fichiers d’une personne à une autre.
Un⋅e administrateurice d’espace peut aussi transférer des fichiers ou des agendas d’un⋅e utilisateur⋅ice à un⋅e autre, via une commande « OCC ». OCC est la CLI de Nextcloud, via laquelle les admins peuvent lancer diverses opérations de maintenance ou de management. On y accède donc en ligne de commande via le terminal uniquement, ce qui a de quoi repousser la plupart des êtres vivants sur cette planète.
En bref cette solution fonctionne, mais ne propose pas d’interface graphique simple aux admins. Cela pose problème dans le cas de « fermes à Nextcloud » (une organisation qui héberge des instances Nextcloud pour beaucoup de clients d’un coup) comme Framaspace, dans lesquelles les administrateur⋅ices d’un espace n’ont pas accès à la ligne de commande.
Techniquement, comment ça marche ?
Comme elle s’intègre avec d’autres applications, OT se base essentiellement sur des APIs existantes de Nextcloud. L’application réutilise aussi des parties du code de Nextcloud que j’ai adaptées aux besoins de l’application. Par exemple, je réutilise le code de transfert de ses propres fichiers, en l’adaptant pour pouvoir choisir à la fois l’utilisateur⋅ice source et destinataire. De même pour le transfert d’agendas.
J’ai par contre dû implémenter le transfert de contacts, non disponible dans Nextcloud par défaut. Il est cependant très similaire au transfert d’agendas, dont je me suis inspiré, puisque les deux se basent sur le protocole WebDAV.
Pour l’affichage, j’utilise bien sûr les composants Vue proposés par Nextcloud. Leurs composants sont assez complets et agréables à utiliser, et ils en sortent de nouveaux régulièrement. Cela m’a permis de réaliser une interface graphique complète en peu de temps, et cohérente avec le reste du logiciel.
Tu as rencontré des soucis, qu’ils soient techniques, organisationnels, etc ?
La documentation de Nextcloud n’ayant pas miraculeusement centuplé en taille depuis la dernière fois, j’ai encore dû fouiller dans le code source de Nextcloud pour aller trouver les fonctions à utiliser. Ça commencerait presque à me plaire. Presque.
Au moins, comme les fonctionnalités existaient déjà en partie dans Nextcloud, les adapter n’a pas été d’une difficulté monstre. Surtout que j’ai pu beaucoup compter sur les conseils de Tcit, codirecteur de Framasoft et contributeur bénévole de Nextcloud. En gros : j’écris du code, il le regarde, il se dit « Cool, mais ça passe pas à l’échelle ton truc », et puis je corrige.
C’était le problème la plupart du temps, le passage à l’échelle. C’est bien beau quand ça fonctionne sur mon petit environnement de test à 5 comptes et 7 dossiers, mais dans l’idéal il faut aussi que ça fonctionne sur les grosses instances Nextcloud avec beaucoup de fichiers. Par exemple, le transfert de fichiers peut prendre beaucoup de temps et de ressources : il faut déplacer tous les fichiers du dossier source vers la destination, ce qui peut être plus ou moins long en fonction de la quantité de fichiers et du type de stockage. Celui-ci est donc géré en fond : au lieu de l’exécuter au premier plan dès la réception de la requête, il est placé dans une file de « jobs » que le serveur effectue périodiquement.
Les transferts de contacts et d’agendas n’ont pas le même problème : il s’agit dans leur cas d’une simple requête SQL qui vient modifier la propriété de l’élément en question. Cette opération est rapide, et peut donc être exécutée au premier plan.
Outre le transfert en soi, réaliser l’interface a aussi été un vrai défi. L’application doit permettre à l’administrateurice de choisir quel élément doit être transféré, et doit donc lui proposer une interface pour faire son choix. Pour les agendas et les contacts, c’est plutôt simple : avec les composants de Nextcloud, j’ai pu facilement faire une liste d’agendas ou de carnets d’adresses. Pour les fichiers, ça se complexifie : il faut récréer une arborescence complète de fichiers, capable d’afficher des sous-dossiers.
Heureusement, un « insalien » n’est jamais seul. Romain, ancien étudiant INSA Lyon (du département Télécom, comme moi !) et ancien stagiaire à Framasoft, a travaillé il y a quelques années sur l’application Sorts. Le but de Sorts est d’améliorer la recherche de fichiers de Nextcloud, en proposant une recherche avec des filtres notamment. Mais Sorts a surtout quelque chose qui m’intéressait : une arborescence de fichiers en arbre. Pile ce qu’il me fallait.
Sorts Interface adapted to OT for choosing the file to be transferred
Après avoir récupéré et adapté le code de Sorts, ce qui n’était pas forcément de tout repos, son arborescence s’intégrait parfaitement à OwnershipTransfer. Cela m’a permis de gagner beaucoup de temps de développement, et j’ai même pu apporter des améliorations, comme les lignes qui mettent mieux en évidence l’arborescence, ou les icônes de partage. Pas mal non ? C’est insalien 😎
Maintenant que ton stage s’achève, et après avoir « mangé » du Nextcloud pendant près de 6 mois, quels sont tes potentiels positionnements sur ce logiciel ?
Ah, c’est le moment où je râle !
Non blague à part, malgré toutes les critiques que je pourrais faire sur Nextcloud (notamment sa documentation légère, sa lenteur occasionnelle ou son interface qui laisse parfois à désirer), le logiciel est fonctionnel, et franchement c’est tout ce qui compte pour la plupart des gens. Des améliorations sont possibles (et sont en cours !), mais je le trouve déjà assez opérationnel pour la plupart des besoins que peuvent avoir ses utilisateur⋅ices. Je l’utilise personnellement depuis 2 ans sur ma Raspberry PI pour stocker mes fichiers, et je n’ai jamais eu de problème majeur avec.
Le logiciel peut par contre s’améliorer sur ses aspects collaboratifs, qui sont très demandés par les utilisateur⋅ices (écrire à plusieurs sur un fichier texte ou calc par exemple). Ces fonctionnalités existent, mais sont souvent encore difficiles à prendre en main et peu optimisées. Du coup, quand je les vois se vanter d’intégrer de l’IA au logiciel (alors que franchement, je pense que pour beaucoup ça n’a que très peu d’utilité) alors même que quand on ouvre un fichier texte en collaboratif c’est parfois encore le bordel… je me dis qu’ils pourraient mieux diriger leurs efforts. Mais bon, faut bien des annonces pour faire vendre.
Nous avons été très heureux⋅ses et satisfait⋅es de travailler avec toi pendant ces quelques mois ! Un dernier mot pour la fin ?
J’ai été très heureux de travailler à Framasoft ! Ce stage a été très enrichissant pour moi, et je remercie encore l’association pour son accueil et ses conditions de travail au top. Si les sujets que j’aborde dans cet article vous intéressent et que vous cherchez un stage dégooglisé, je vous encourage à venir à Framasoft (promis le dev Nextcloud c’est pas si terrible en vrai). Sinon, vous pouvez toujours faire un don !
Maintenant c’est l’heure des vacances pour moi (puis des « cours », mais ne le dites pas trop fort), puis de mon stage de fin d’études en début d’année prochaine. Je glisse ça là, au cas où 😉
Merci et bonne continuation, Val !
Pour information, si vous êtes étudiant⋅e, que vous aimez Nextcloud, et que ce genre de sujet de stage vous intéresse (de préférence à Lyon pour faciliter l’encadrement, mais télétravail possible), n’hésitez pas à nous envoyer rapidement une candidature spontanée sur stages @ framasoft.org !
Candidater et proposer votre CV à Framasoft : envoyez un mail à stages @ framasoft.org
Intros, a Nextcloud app to help you get to grips with Framaspace
The Framaspace project currently hosts a cloud environment (files, calendars, contacts, wiki, kanban, etc.) for more than 1,200 associations and groups. That’s as many instances of the Nextcloud free software. Unfortunately, it’s not always easy to get to grips with Nextcloud, despite the documentation, forums and so on. So Framasoft decided to get an intern, Val, to work on the subject of supporting people using Nextcloud for the first time. Here’s his story.
Hi! I’m Val, and I’m 22. I was raised in Paris’ suburbs, and I have been studying at INSA Lyon, an engineering school in Villeurbanne for 4 years now. I am parisian, lyonnais, suburbanite, or even Swedish, depending on the mood.
If everything goes as expected, I’ll graduate next year as an Telecommunication Engineer.
I like singing and playing music, climbing plastic walls, solving Rubik’s cubes and playing video games, when I’m not busy tweaking some lines of code. Over the last few years, I have also been active in multiple associations, including some at INSA or the Red Cross.
You chose Framasoft for your internship. Why?
I had to search for an internship while being in Sweden, and it wasn’t really easy. Searching from another country didn’t help of course, and I also wanted an internship matching my personal values. Basically, being cheap labour to help big business get richer isn’t really my thing.
The year before, I participated in organising an event with the Exit Lyon association, at which a Framasoft employee gave a conference on queer emancipation through digital technology. Being engaged in associations, I already knew Framasoft from their web services, as many do. I still had her email, so I sent an application, and there I am!
It was kind of an ideal case: an internship in a non-profit, breaking with capitalism, and contributing to build more social justice in our society.
Let’s talk about your internship. What was the general objective?
Framasoft’s collaborative cloud platform for associations and activist groups, Framaspace, has been active for 2 years now, and is based on Nextcloud. Even though it is a good solution, this open source software is far from perfect, and in particular is more difficult to use than other existing solutions (closed-source and maintained by GAFAMs, such as Google Drive or Microsoft 365).
Please note that Framaspace is a service reserved for French-speaking audiences. The Framasoft association, which provides this product free of charge only to associations and militant collectives, relies solely on donations. Consequently, it is our association that bears the technical support and financial costs of hosting and we cannot afford to host a worldwide audience.
My internship tries to solve part of this problem: how to make sure that first time someone logs into Nextcloud they don’t run away. My aim is to make the first use of Nextcloud easier, by supporting users and helping them using the software. It would encourage people to stay on a free solution that respects their privacy, and not run towards GAFAM solutions, considered easier to use.
Luckily, Nextcloud allows the community to create apps that integrate with the software to enhance it. Hence my first contribution to this mission is a Nextcloud app, « Intros ».
OK, so let’s talk about the Intros App. What’s it for? Who is the target audience?
Intros answers an user’s most simple question when meeting Nextcloud: « Where is the button to [insert a random action]? ».
To answer it, Intros highlight elements, buttons or even parts of Nextcloud’s interface to explain what they do. For example, the app will highlight the small sharing icon and display a text explaining how to share a file to someone else. This applies to several Nextcloud apps, including files, contacts or calendar.
Video demonstration of how the ‘Intros’ app works
Technically, how does it work?
The app uses the intro.js library, which helps creating step-by-step tutorials that highlight a web page’s elements. The library simply integrates to Nextcloud as any other javascript library would, and we can customise tutorials for the users.
That’s it? No! The library handles most of the visual aspects for us, but it had to be adapted to integrate to Nextcloud properly. For example, remembering when a tutorial has already been seen to not display it again, and making a menu to re-enable it if needed. Or even handling multiple languages, displaying buttons in Nextcloud’s style, highlighting elements nested in menus… Lots of small enhancements that allow a smooth integration of the library to Nextcloud.
Have you encountered any technical or organisational problems?
Of course, otherwise where would the fun be? As always when I’m coding something, sometimes it works and I think, « wow, I’m a genius », and sometimes (often) it doesn’t work and I think, « wow, I’m an intern ».
For example, during development I realised that the application sometimes had trouble finding some elements on the page. One of the problems with intro.js is that the library is designed to be deployed on a site that has been designed by the person who writes the tutorials. This person would have a good knowledge of the site’s structure, and would know which elements need to be selected for it to work every time… Except this person isn’t me. I’m integrating it into Nextcloud, which I obviously didn’t design, so I have to adapt to the structure of the existing pages. As if that wasn’t simple enough, the way the pages are built changes depending on the application (Files, Calendar, Contacts…) or even the version of Nextcloud. So I had to reverse-engineer the HTML DOM on a case-by-case basis, to find out which elements it was possible to select and avoid selecting elements that could change name, class or even completely disappear.
But even being careful, it sometimes didn’t work. The application couldn’t find certain elements, and displayed an explanation over empty space. Not ideal. In intro.js, by default, you give a list of elements to highlight and the explanations that go with them, and the library takes care of detecting them in the DOM when the page loads. This was the critical point in this case: when the page loads. The elements are all loaded at once, so they can’t change along the way. I had problems with this specifically in two cases:
first, elements nested in menus. We sometimes want to highlight an element that isn’t visible on page load, and would be after a user click
then, elements that aren’t loaded immediately on page load. Some Nextcloud apps take a bit more time to load their elements, so the library can’t detect them on load.
So what? Well, press the keys on the keyboard, in the right order if possible, and after a while it makes code that solves the problem. Here, instead of detecting all the elements at once, I’ve made sure to detect them just before they’re needed. Each time the user presses ‘next’, the application detects the next element to be highlighted and replaces the default element with this element before launching the next step. This way, we don’t have to worry about page load times or the fact that the button is in a menu. All that’s left to do is simulate a user click with javascript for buttons in menus and tada! It works.
Now that the app has been published, what’s next?
What’s next? It’s not really about me anymore! I hope the app will be used by Nextcloud’s users, and it’s already in use in Framaspace.
We have also discussed with Nextcloud for a possible integration of the app to the software core (and not as a third-party app). That would make it easier to add new tutorial to the apps for developers, but Nextcloud had some remarks regarding this. One of them was that the app explains the interface, while they could simply improve it so it wouldn’t need an explanation.
And of course, the app can still be perfected (I’m only a humble intern, after all) to make it more efficient, easier to maintain,… It’s also very important since we want it to be maintained over the (frequent!) Nextcloud updates.
A little birdie tells me that you’re working on another Nextcloud application, can you tell us more about that?
A new app is indeed on the road (#WIP). The OwnershipTransfer app will allow admins to transfer the ownership of files (or even other types of data?) from one user to another. This would be especially useful for when someone is leaving an association that uses Nextcloud, and forgot to transfer their important files to someone else! It will prevent them from losing a very important budget file, forever. However, it still doesn’t make coffee… sorry.
We’ve come to the end of this interview. Would you like to share a feeling about the work you’ve done during this internship?
OwnerShipTransfer : Transférer des données/fichiers d’un utilisateur à l’autre
Sélection de fichier dans l’app « OwnershipTransfer » (travail en cours)
I’m really satisfied with what I accomplished. Over and above the fact that I designed and developed a Nextcloud application for the first time from A to Z, I’ve learnt a lot of new skills. Whether it’s PHP, a language I’d only just got to grips with before my internship, or software development in general, managing releases, issues and merge requests, and so on. I’m very happy to be able to have learnt a lot during this internship.
By the way, huge thanks to Framasoft’s employee team who’s always been eager to help me and answer my questions when needed!
Last question, a recurring one in our interviews: what question would you like to have been asked, and what would your answer be?
« Tell me, what do you think of Nextcloud’s documentation? »
It’s time to rant (after all, I’m French!). It’s… lightweight, to say the least. But you can see it from a good perspective: I guess browsing the source code to understand how the APIs work is a great learning experience!
Intros, une app Nextcloud pour faciliter la prise en main de Framaspace
Le projet Framaspace propose, à ce jour, un espace cloud (fichiers, agendas, contacts, wiki, kanban, etc) à plus de 1 200 associations et collectifs. C’est autant d’instances du logiciel libre Nextcloud. Malheureusement, ce dernier n’est pas toujours très facile à prendre en main, malgré les documentations, les forums, etc. Framasoft a donc décidé de faire plancher un stagiaire, Val, sur le sujet de l’accompagnement des personnes utilisant Nextcloud pour la première fois. Voici son histoire.
Salut ! Je m’appelle Val, j’ai 22 ans. J’ai grandi en banlieue parisienne, et depuis 4 ans maintenant je fais mes études à l’INSA Lyon, école d’ingénieur qui se trouve à… Villeurbanne (c’est comme Lyon, mais avec les endroits jolis en moins). Je suis Parisien, Lyonnais, banlieusard, parfois même Suédois, selon l’humeur.
Si tout se passe bien, je serai diplômé l’an prochain comme Ingénieur en Télécommunications.
J’aime chanter et faire de la musique, aller grimper des murs en plastique, résoudre des Rubik’s cube et jouer aux jeux vidéos, quand je suis pas occupé à bidouiller du code. Ces dernières années, j’ai aussi participé à plusieurs projets associatifs, notamment dans des associations de l’INSA, ou encore avec la Croix-Rouge.
Concernant ton stage, tu as choisi Framasoft. Pourquoi ?
J’étais en Suède au moment de chercher un stage, et c’était un peu galère. Chercher à distance c’est forcément plus compliqué, surtout que je voulais si possible faire un stage qui corresponde à mes valeurs. Si vous vous posez la question, en gros, être de la main d’œuvre pas chère pour renflouer le capital de grandes entreprises c’est pas trop mon truc.
L’année précédente, j’avais participé à organiser un évènement avec l’association Exit Lyon, dans lequel une salariée de Framasoft était venue faire une conférence sur l’émancipation queer par le numérique. Étant engagé dans le milieu associatif, je connaissais déjà un peu Framasoft, je pense comme beaucoup à travers les services numériques que l’asso propose. J’avais encore son mail, donc j’ai envoyé une candidature, et voilà où j’en suis quelques mois plus tard.
C’est un peu le cas idéal pour moi : un stage dans une organisation à but non-lucratif, en rupture avec le capitalisme, et qui contribue à construire plus de justice sociale dans notre société.
Venons-en au sujet de ton stage. Quel était l’objectif général ?
Depuis 2 ans Framasoft propose Framaspace, une solution de collaboration et de stockage de fichier en ligne à destination d’associations et de collectifs militants, basée sur le logiciel libre Nextcloud. Bien qu’il réponde à la problématique posée, celui-ci est loin d’être parfait, et est notamment plus difficile d’utilisation que d’autres solutions existantes (non-libres et administrées par des GAFAM, par exemple Google Drive ou Microsoft 365).
Mon sujet de stage vient s’inscrire dans cette problématique : comment faire pour que la première fois qu’une personne se connecte à Nextcloud elle ne fuit pas en courant. Mon but est de faciliter la première utilisation de Nextcloud, en accompagnant les utilisateurices et en les aidant à s’approprier le logiciel. Si tout se passe bien, cela encourage les gens à rester sur cette solution libre et respectueuse de leur vie privée, à défaut de les voir courir vers des solutions jugées plus simples d’utilisation chez les GAFAM.
Fort heureusement, Nextcloud permet à la communauté de créer des applications qui s’intègrent au logiciel pour venir l’améliorer. La première incarnation de cette mission prend donc la forme d’une Application Nextcloud, « Intros ».
OK, donc, parlons de l’App Intros. À quoi sert-elle ? Quel est le public visé ?
Intros répond à la question la plus simple qu’une personne a en arrivant sur Nextcloud : « Il est où le bouton pour [insérer une action quelconque] ? ».
Pour y répondre, Intros met en lumière des éléments, des boutons ou même des parties de l’interface de Nextcloud et explique à quoi elles servent. Par exemple, l’application va surligner la petite icône de partage d’un fichier et afficher un texte qui explique comment partager un fichier à une autre personne. C’est valable pour plusieurs des applications de Nextcloud, des fichiers aux contacts, en passant par le calendrier.
Techniquement, comment ça marche ?
L’application est basée sur la bibliothèque intro.js, qui permet justement de réaliser des tutoriels pas à pas en surlignant les éléments d’une page web. La bibliothèque s’intègre simplement à Nextcloud comme une bibliothèque javascript classique, et on peut personnaliser des visites pour les utilisateurices.
C’est tout ? Non ! La bibliothèque gère certes la plupart des aspects de l’affichage pour nous, mais il a fallu l’adapter pour qu’elle s’intègre à Nextcloud. Par exemple, gérer quand la visite d’une application a déjà été suivie, pour ne pas la proposer une nouvelle fois à l’utilisateurice, et faire un menu pour réactiver les visites en cas de besoin. Ou encore gérer différentes langues, afficher des boutons cohérents avec le reste de Nextcloud, surligner des éléments dans des menus… Bref, de nombreuses petites améliorations qui permettent à la bibliothèque de bien s’intégrer à Nextcloud, sans que les utilisateurices ne se doutent de rien.
Tu as rencontré des soucis, qu’ils soient techniques, organisationnels, etc ?
Bien sûr, sinon c’est moins marrant. Comme toujours quand je développe quelque chose, parfois ça fonctionne et je me dis que, quand même, je suis vraiment génial, et parfois (souvent) ça fonctionne pas et je me dis que, quand même, je suis stagiaire.
Par exemple, au cours du développement je me suis rendu compte que l’application avait parfois du mal à trouver certains éléments de la page. L’un des soucis d’intro.js, c’est que la bibliothèque est prévue pour être déployée sur un site qui a été conçu par la personne qui écrit les visites guidées. Cette personne aurait donc une bonne connaissance de la structure du site, et saurait quels éléments doivent être sélectionnés pour que ça fonctionne à tous les coups… Sauf que cette personne, c’est pas moi. Je l’intègre à Nextcloud, que je n’ai évidemment pas conçu, et je dois donc m’adapter à la structure des pages existantes. Comme si c’était pas assez simple, la façon dont les pages sont construites change en fonction de l’application (Fichiers, Agenda, Contacts…) ou même de la version de Nextcloud. Bref, il a fallu rétro-ingénierer le DOM HTML au cas par cas, pour trouver quels éléments il était possible de sélectionner et éviter de sélectionner des éléments qui peuvent changer de nom, de classe, ou même disparaître totalement.
Mais même en faisant attention, parfois ça ne passait pas. L’application n’arrivait pas à trouver certains éléments, et affichait une explication sur du vide. Pas idéal. Dans intro.js, par défaut, on donne une liste d’éléments à surligner et les explications qui vont avec, et la bibliothèque se charge de les détecter dans le DOM au chargement de la page. C’est ce point qui était bloquant dans ce cas : au chargement de la page. Les éléments sont tous chargés d’un coup, et ne peuvent donc pas changer en cours de route. Ça m’a posé problème spécifiquement dans deux cas :
d’abord, les éléments dans des menus. Parfois on veut mettre en évidence un élément qui n’est pas visible par défaut, et qui le deviendrait après un clic de l’utilisateurice sur un bouton ;
ensuite, les éléments qui ne sont pas chargés immédiatement au chargement de la page. Certaines applications de Nextcloud mettent un peu plus de temps à charger leurs éléments, et la bibliothèque ne peut donc pas les détecter dès le chargement.
Alors comment on fait ? Ben on appuie sur les touches du clavier, dans le bon ordre si possible, et au bout d’un moment ça fait du code qui règle le problème. Ici, au lieu de détecter tous les éléments d’un coup, j’ai fait en sorte de les détecter juste avant qu’on ait besoin d’eux. A chaque fois que l’utilisateurice appuie sur « suivant », l’application détecte l’élément suivant qui doit être surligné et remplace l’élément par défaut par cet élément avant de lancer l’étape suivante. Comme ça, on n’a pas à se soucier du temps de chargement de la page, ou du fait que le bouton soit dans un menu. Reste plus qu’à simuler un clic utilisateur avec javascript pour les boutons dans les menus et paf! ça fait des chocap… bref ça fonctionne.
Maintenant que l’app est publiée, quelle est la suite des événements ?
La suite, j’allais dire que ça ne dépend presque plus de moi ! J’espère que l’application sera utilisée par les utilisateurices de Nextcloud, elle est en tout cas déjà utilisée au sein de Framaspace.
Par ailleurs, on a discuté avec Nextcloud d’une possible intégration de l’application au cœur du logiciel (non plus en tant qu’application tierce, mais directement dans Nextcloud). Cela faciliterait l’ajout de nouveaux tutoriels pour les applications tierces, mais Nextcloud émet des réserves quant à la pertinence de son intégration. Une des remarques faites est que l’appli vient expliquer l’interface, alors qu’on peut directement adapter l’interface pour la rendre plus facile d’utilisation (elle se passerait alors d’explications).
Et puis l’application peut encore être améliorée (après tout je ne suis qu’un modeste stagiaire) pour la rendre plus performante, plus facile à maintenir, etc. C’est également important puisqu’on souhaite qu’elle soit maintenue au fur et à mesure des mises à jour (fréquentes !) de Nextcloud.
Mon petit doigt me dit que tu travailles sur une autre application Nextcloud, tu peux nous en dire plus ?
Ton petit doigt m’a l’air très bien renseigné 😉
Une nouvelle application est effectivement en cours de construction (#WIP). L’application OwnershipTransfer de son petit nom permettra à l’admin d’un Nextcloud de transférer la propriété des fichiers (ou même d’autres types de données) d’un-e utilisateurice vers un-e autre. Bien pratique par exemple quand une personne quitte une association qui utilisait Nextcloud sans penser à transférer ses fichiers importants à un-e autre membre : cela évite de perdre à tout jamais le budget prévisionnel de l’asso. Par contre, ça fait toujours pas le café… désolé.
OwnerShipTransfer : Transférer des données/fichiers d’un utilisateur à l’autre
Sélection de fichier dans l’app « OwnershipTransfer » (travail en cours)
On arrive à la fin de cette interview. Souhaites-tu nous partager un sentiment sur le travail effectué pendant ce stage ?
Je suis pleinement satisfait du travail que j’ai effectué. Au delà du fait d’avoir conçu et développé une application Nextcloud pour la première fois de A à Z, c’est surtout d’en tirer énormément de nouvelles compétences et apprentissages. Que ça soit en PHP, langage que je n’avais que peu apprivoisé avant mon stage, en développement logiciel de manière générale, gérer des releases, des issues et des merge request… Je suis très heureux de pouvoir sortir de ce stage en ayant beaucoup appris.
J’en profite pour remercier l’équipe salariée de Framasoft, qui a toujours su m’aider et répondre à mes questions quand j’en avais besoin !
Dernière question, récurrente dans nos interviews : quelle est la question que tu aurais aimé qu’on te pose, et quelle serait ta réponse ?
« Mais dis moi Val, tu la trouves comment la documentation de Nextcloud ? »
C’est un peu mon instant râleur (après tout je suis Français). Elle est… peu fournie, pour profiter d’une occasion d’utiliser une figure de style que j’aime beaucoup. Ça présente ses avantages d’un côté, si on veut y voir du positif : aller fouiller dans le code source pour comprendre comment utiliser les API c’est très formateur !
Merci beaucoup, Val !
Pour information, si vous êtes étudiant⋅e, que vous aimez Nextcloud, et que ce genre de sujet de stage vous intéresse (de préférence à Lyon pour faciliter l’encadrement, mais télétravail possible), n’hésitez pas à nous envoyer rapidement une candidature spontanée sur stages @ framasoft.org !
Candidater et proposer votre CV à Framasoft : envoyez un mail à stages @ framasoft.org
Dégooglisons Internet fête ses 10 ans : mises à jour et nouveaux services
Pétitions, Tableau blanc, Tricount-like, etc… De nouveaux services Framasoft sont en préparation, et des services existants sont en rénovation. On vous dit tout, et notamment pourquoi nous avons besoin de vous.
Cet article étant particulièrement long, on vous en propose ici un court résumé.
Il y a dix ans, nous annoncions notre campagne Dégooglisons Internet, qui fut un succès relativement retentissant : en couplant le plaidoyer (c’est à dire le fait de dénoncer la « triple domination » des GAFAM et leur toxicité) avec la mise en place de solutions concrètes, cette campagne de Framasoft a marqué les esprits, et nous pensons même en toute humilité qu’elle a été parfois un socle pour apporter une réponse structurée à l’envahissement des Big Tech dans nos vies.
Dans la foulée (en 2016), nous impulsions le collectif CHATONS, qui compte aujourd’hui plus de 80 structures.
Puis, quelques années plus tard, nous fermions une partie des services Dégooglisons. Les raisons étaient nombreuses (au moins 10 !) mais il y avait l’envie d’arrêter la course à l’échalote de la sortie de services, puisque nous en avions publié quasiment un par mois pendant trois ans. Notre épuisement (surtout post COVID) était alors à la hauteur de la pression du public.
Des CHATONS autonomisés pour des GAFAM atomisés ?
En parallèle le collectif CHATONS continuait sa montée en puissance. Coordonné par Framasoft, qui finançait son animation, nous estimons que fin 2023, l’association Framasoft a investi environ 100 000€ (essentiellement en temps de travail salarié) dans la mise en place de ce collectif.
Alors, certes, comme tout projet collectif, celui-ci comporte des faiblesses et des failles. Mais cette association de fait est réellement un succès à de nombreux points de vue :
la marque « CHATONS » est connue et reconnue par de très nombreux utilisateur⋅ices, qui peinaient à retenir les identités de nombreuses structures locales ;
le fait d’avoir un projet structurant a encouragé de nombreuses personnes à créer leur propre organisation. Ces personnes se sont senties légitimes à créer ou rejoindre des associations locales. Avoir réussi à faciliter ce « faire ensemble » est une véritable fierté pour nous ;
Le collectif est maintenant autonome et auto-géré depuis plusieurs mois, Framasoft étant depuis redevenu un « simple membre ».
Ne pas regarder le train du numérique passer
Cependant, en 10 ans, le numérique a bien évolué, et les GAFAM, les NATU, et autres BATX ne sont pas gentiment restées à attendre de se faire démanteler par des CHATONS ou la commission européenne.
Le cloud s’est généralisé, l’usage du mobile s’est imposé que ce soit pour payer son parcmètre ou ses impôts, l’intelligence artificielle participe certes d’une certaine hype, mais elle bouscule et percute aujourd’hui déjà de nombreux usages (et ce n’est qu’un début).
Dépenses des utilisateur⋅ices dans le cloud public entre 2017 et 2024
Estimation de dépenses liées à l’IA par secteur d’activité
Bref, le numérique est toujours plus présent, et pour le dire clairement, nous, militant⋅es du libre, des communs culturels et d’un numérique émancipateur n’avons gagné quasiment aucune bataille dans la lutte contre un adversaire gigantesque et tentaculaire. Cependant, le simple fait de critiquer, de se réunir, de manifester, de s’opposer, de proposer… est déjà une victoire en soi !
Il convient donc, aujourd’hui de « mettre à jour notre logiciel ». L’expression peut évidemment être entendue dans les deux sens. Mettre à jour notre façon d’agir, mettre à jour l’objet de nos luttes, relever la tête du guidon numérique libriste pour regarder comment le TGV du numérique capitaliste a évolué cette dernière décennie.
Cela s’est traduit par des prises de conscience pour Framasoft ces dernières années :
le libre est un moyen nécessaire (mais non suffisant) pour aller vers une société libre, mais il n’est pas une fin en soi. Savoir que du logiciel libre équipe des drones larguant des bombes en Palestine ou en Ukraine ne nous réjouit pas (litote) ;
la centralisation est une source de puissance pour les BigTech, la décentralisation est donc l’équivalent d’un caillou dans leur chaussure. Et dans ce cadre, la fédération (par exemple via ActivityPub) est une réponse pertinente, a minima pour explorer les interstices dans lesquels ces entreprises n’arrivent pas encore à se glisser ;
il y a une forme de « paradoxe de la tolérance » dans le libre : d’un côté une espèce de « pureté militante » à vouloir du 100% libre sans reconnaître que le libre est un chemin sur lequel chaque individu ou communauté se situe à une étape qui lui est propre ; et à l’inverse, une réelle difficulté du monde libre à reconnaître que l’autorisation explicite de réutiliser le travail produit par les communautés profite aussi largement aux géants du numériques qui, eux, n’ont ensuite aucun scrupule à mettre des bâtons dans les roues des projets de ces mêmes communautés ;
nous comprenons et adhérons à l’adage « Tout seul on va plus vite, ensemble on va plus loin. ». Nous croyons fortement dans l’intérêt des processus collectifs. Mais… en vingt ans d’existence, force nous a été de constater que « Ensemble, on va moins vite. » (sauf à être très bien organisé, ce qui n’est que rarement le cas des communautés libristes). Il y a souvent une énergie folle dépensée dans la structuration de nos luttes, souvent due à un impensé : l’animation/coordination est un métier, qui réclame des compétences souvent ignorées ou peu valorisées. Or comme on l’a vu, le numérique « avance » vite. ChatGPT 4 est sorti depuis ~18 mois, et quelle a été, à quelques exceptions près, la réaction du monde libriste ? Un silence plutôt assourdissant au mieux, des moqueries en mode « ça ne marchera jamais » au pire.
Ce sont ces raisons qui nous ont poussé⋅es ces dernières années à développer avec nos petits bras associatifs un logiciel comme PeerTube, ou à proposer des projets comme Emancip’Asso ou Framaspace, qui nous permettent de mettre nos compétences aux services de communautés la plupart du temps non-libristes, mais qui partagent nos valeurs.
Ainsi, dans le contexte social et politique actuel, il nous paraît essentiel de renforcer notre offre de services en ligne à dispositions des collectifs et militant⋅es.
Mais « mettre à jour notre logiciel » peut aussi être entendu d’un point de vue beaucoup plus littéral : il s’agit en effet de mettre à jour les logiciels qui motorisent notre campagne « Dégooglisons Internet », voire d’en proposer de nouveaux au public.
Framasoft ouvre et va rouvrir de nouveaux services
« Hein ? Quoi ? Mais vous n’aviez pas dit que vous vouliez « déframasoftiser internet » ? »
Mais 4 à 5 ans ont passé depuis. Et il faut bien se rendre à l’évidence, la situation est moins propice au libre aujourd’hui qu’à l’époque. Pour les raisons évoquées ci-dessus, et bien d’autres encore.
L’année précédente, c’était l’ouverture de Framaspace, espace cloud destiné aux petites associations et collectifs militants. Nous hébergeons à ce jour plus de 1 130 Framaspaces, soit autant d’instances du logiciel Nextcloud, le tout gratuitement.
Cette année encore, Framasoft souhaite proposer de nouveaux services. Toujours gratuitement (enfin, pas tout à fait, puisque ce sont vos dons qui financent), toujours respectueux de votre vie privée, toujours sur la base de logiciels libres, toujours sans aucune exploitation commerciale de vos données. Car les usages numériques évoluent, et nous devons évoluer avec eux. Ou plutôt nous devons évoluer avec vous, car ce sont avant tout le cheminement de vos pratiques qui guide nos actions.
En conséquence, cette seconde campagne « Dorlotons Dégooglisons » nous permet de faire le point sur ce que nous avons fait depuis un an, mais aussi ce sur quoi nous travaillons en ce moment, ainsi que ce que nous envisageons pour les mois à venir.
Passez à l’action ! Framasoft souhaite ouvrir de nouveaux services libres, éthiques, décentralisés et solidaires. Pour cela, nous nous sommes fixés un objectif de collecte de 60 000€ pour nous permettre de financer les machines, mais surtout le temps de travail pour leur mise en place. Si vous le pouvez : soutenez-nous !
Nous avons publié le service Framagroupes. Pour information, aujourd’hui, ce service expédie plus de 50 000 mails par jour (!) et accueille déjà 7 900 listes de discussions, ce qui, avec les 59 000 listes de Framalistes, fait probablement de Framasoft l’organisation à but non lucratif hébergeant le plus gros serveurs de listes au… monde (si on compare par exemple à RiseUp (15,225 listes 389,871 utilisateur⋅ices) ou Renater/Universalistes (1 600 listes).
À cause d’utilisations (très) malveillantes de Framatalk, nous avons développé un logiciel (libre, bien entendu) qui permet d’imposer l’authentification des personnes qui souhaitent ouvrir un salon de visioconférence. Si on peut entendre que cela représente une contrainte pour vous, au vu des usages (on le répète, très) malveillants qui étaient faits de ce service, nous n’avions tout simplement pas le choix.
Nous avons migré plus de 1 000 instances Framaspace en version 28. Nous avons fait développer un logiciel de supervision spécifique, Argos Panoptès, pour gérer autant d’instances.
Notre infrastructure email, malgré plus de 8 millions de mails envoyés par mois (oui oui, 271 000 mails en moyenne par jour !) continue d’être régulièrement boudée par certains acteurs (oui, c’est vous qu’on regarde Orange, La Poste et SFR !). À tel point qu’après une lutte de plusieurs mois qui nous aura demandé autant d’énergie que de paracétamol, nous avons dû nous résoudre, à contrecœur, à utiliser les services d’un prestataire externe, pour les envois de nos newsletters (431 129 abonné⋅es en double opt-in).
Du côté de Framaforms, nous avons amélioré la gestion du spam, cette chienlit qui n’en finit pas de revenir dégrader un service pourtant parmi les plus utilisés de Framasoft.
Pour faciliter les recherches de vidéos sur l’ensemble du réseau PeerTube (notre alternative à YouTube), nous avons changé le logiciel qui motorise Sepiasearch, notre moteur de recherche du « vidiverse». Ce dernier utilise maintenant la brique logicielle Meilisearch, et non plus Elasticsearch, dont la licence a pris un chemin bien moins libre.
Framacarte a aussi fait l’objet d’une mise à jour majeure, qui fait suite au travail de la communauté uMap, avec laquelle nous restons très en lien.
Concernant MyPads, le plugin qui permet de gérer et d’organiser vos Framapad, les changements ont été subtils, mais nombreux. Ainsi, grâce au travail de Pierre, stagiaire à Framasoft pour (seulement) 6 semaines, de nombreuses petites améliorations ont été faites.
Parmi les améliorations d’ores et déjà disponibles :
ajout d’un logo pour revenir à l’accueil (oui, c’est bête, mais il n’y en avait pas et beaucoup d’utilisateur⋅ices peinaient à retourner sur la page d’accueil)
meilleure identification des dossiers restreints ou publics
les dossiers archivés sont maintenant repliés par défaut pour une meilleure lisibilité
les propriétés du dossiers sont maintenant repliées par défaut pour une meilleure lisibilité
la recherche, en page d’accueil, permet maintenant de rechercher sur les noms de pads (en plus des dossiers)
possibilité de trier les dossiers ou les pads par noms ou par dates de création
Quelques améliorations de MyPads apportées par Pierre, stagiaire Framasoft
Quelques améliorations de MyPads apportées par Pierre, stagiaire Framasoft
Enfin, Mobilizon, notre logiciel libre et fédéré alternatif aux groupes et pages Facebook, a été transmis à la communauté (aujourd’hui coordonnée par la communauté Kaihuri/Keskonfai). Nous annoncions en effet il y a quelques mois que nous estimions notre engagement initial concernant Mobilizon rempli. Nous souhaitions pouvoir rediriger une partie de notre capacité de développement logiciel vers les projets les plus prioritaires (contrairement à ce que beaucoup de personnes pensent, en dehors de PeerTube, nous ne disposons « que » d’un mi-temps de développeur salarié).
Passez à l’action ! Framasoft accueille plus de 2 millions de personnes par mois, et améliore et maintient de très nombreux services tout au long de l’année. Cela implique énormément de travail humain (développement, support, administration système, etc), ainsi qu’une infrastructure technique conséquente. Si vous le pouvez : soutenez-nous !
Il existe de nombreuses plateformes de pétitions, mais ces dernières ne sont que rarement basées sur du code libre. Par ailleurs, ces plateformes sont aussi largement soupçonnées d’utiliser vos données personnelles (nom, email, cause soutenue) à d’autres fins que d’ajouter votre signature à une pétition.
Framapétitions est donc un service en test (on répète : il n’est PAS finalisé) qui permet de créer ou signer des pétitions citoyennes. Le service peut d’ores et déjà être utilisé, mais reconnaissons-le, il mérite encore d’être amélioré. Ça tombe bien, nous allons travailler dessus dans les mois qui viennent.
Dans les coulisses
Un projet de plateforme de pétitions qui n’exploiterait pas vos données était donc dans nos cartons depuis plus de 10 ans. Mais… faute de temps et d’énergies, nous repoussions sans cesse le sujet. Une autre raison était plus politique : à quoi servent vraiment les pétitions ? Parfois uniquement à se donner bonne conscience en se disant « J’ai agi », nous dédouanant alors d’un passage à l’action plus directe. Cependant, vos demandes régulières à ce que nous avancions sur le sujet nous ont motivés à remettre ce projet au goût du jour.
Voilà plusieurs années que nous soutenons un projet libre nommé « Pytition« . Fonctionnel, mais nécessitant encore pas mal de travail sur les aspects visuels. Nous soutenir financièrement, c’est nous permettre d’allouer du temps de travail pour améliorer Pytition, en lien avec le développeur originel et permettre, à moyen terme, d’ouvrir une plateforme de pétitions réellement libre, ouverte, et avec une garantie de non-exploitation commerciale de vos données.
Framalab, pour expérimenter des logiciels avant qu’ils ne deviennent (potentiellement) des services
Mettre en place un logiciel utilisable en ligne est assez simple, surtout quand, comme nous, vous disposez d’un administrateur système très compétent. Cependant, entre installer un service en ligne et être capable d’y accueillir plusieurs centaines de milliers de personnes par mois, il y a tout un monde. Il faut tester les fonctionnalités du logiciel, évaluer sa maintenance, savoir jauger le temps et l’énergie qu’il nous prendra en support et en modération, créer une page d’accueil, parfois corriger quelques bugs gênants, constituer une Foire Aux Questions, communiquer dessus, etc.
Afin de faciliter ce processus, nous avons décidé de rendre public le site Framalab. Sur ce site vous trouverez quelques unes de nos applications en test.
Notez bien que les applications qui suivent sont en test. Elles peuvent disparaître à tout moment, ce qui signifie que vous pouvez perdre vos données du jour au lendemain. Par ailleurs, elles ne feront l’objet d’aucun support de notre équipe salariée : si vous avez des questions ou rencontrez des difficultés, vous pouvez les remonter sur notre forum, où l’entraide sera communautaire (comprendre : peut-être que quelqu’un vous répondra, peut-être pas).
Tricount est une application (non libre) de gestion des dépenses de groupes (familles, ami⋅es, colocataires, etc).
Elle compte plus de 5 millions d’utilisateur⋅ices dans le monde.
L’application fonctionnait auparavant très bien sur le web, qui s’affichait dans une version mobile tout à fait correcte. Mais depuis peu la version web n’est plus disponible, et vous êtes obligé⋅es de télécharger et installer une application web sur votre smartphone. Nos ami⋅es d’ Exodus Privacy détectent, sur cette application, pas moins de 12 pisteurs et 16 permissions. D’où l’idée de vous proposer des alternatives libres, garanties sans pisteurs.
I Hate Money
Un « petit » projet libre comme on les aime : il fait une chose, mais la fait bien, et sans fioriture. Par exemple pour un voyage entre ami⋅es, une première personne créée un projet (pas besoin de créer un compte : il suffit de choisir un nom, de définir un code d’accès, et de laisser un email). Les autres personnes pourront alors s’y connecter, et ajouter chacune leurs dépenses. Au final, un clic sur « remboursement » permettra de savoir très facilement « Qui doit combien à qui ? ». Simple, rapide, efficace, on vous dit !
Cette application, née en 2011, n’a peut-être pas le « look and feel » le plus moderne. Cependant, nous l’avons testé en conditions réelles, et… elle fonctionne très très bien et nous l’avons trouvée simple et efficace sur mobile. Elle a principalement été développée par Alexis Métaireau (oui, le même qui a développé pour nous Argos Panoptes, que nous évoquions plus haut dans la partie « Framaspace »).
Encore une fois, un petit projet très simple, mais avec un look résolument moderne : pas besoin de s’authentifier, quelqu’un créé un groupe, puis ensuite ajoute des participant·es, et enfin leur partage l’URL. Tout le monde peut rentrer des dépenses simplement, et l’application calcule ensuite automatiquement qui doit quoi à qui. Il est possible d’utiliser des modes de partage plus avancés : par nombre de portions ou encore par pourcentage. Seul hic, le projet est à l’heure actuelle uniquement anglophone, donc il vous faudra comprendre a minima la langue de Shakespeare pour pouvoir l’utiliser. Sans pour autant le garantir, si cela devait devenir un service Framasoft, peut-être que notre communauté pourrait aider à le rendre traductible puis à le traduire pour un public francophone !
Vous connaissez peut-être Cospend, l’application Nextcloud qui propose des fonctionnalités similaires. Nous avons choisi de ne pas expérimenter avec cette dernière, pour plusieurs raisons. La première, c’est qu’elle nécessite une instance de Nextcloud (bravo Sherlock !), et que cela signifierait de mettre en place une instance de Nextcloud uniquement dédiée à ce service. La deuxième, c’est qu’il faudrait également rajouter des modifications au logiciel, pour que les utilisateur·ices de l’instance ne puissent pas ajouter n’importe qui d’autre utilisant le service à un groupe de dépense. La troisième, c’est que la version Web mobile nous a semblé peu utilisable (avec des écrans qui se recouvrent les uns les autres), et bien qu’une application mobile Android MoneyBuster propose en théorie de se lier à un Cospend, en pratique il n’est plus possible de rejoindre un groupe de dépense Cospend avec cette dernière, et ce depuis quelques mois, sans visiblement de résolution apparente de ce bug critique). Alors on sait ce que c’est qu’être bénévole sur un logiciel libre, donc on ne jettera la pierre à personne, et au contraire on encouragera le développement, depuis les gradins. Mais en l’état actuel, cela nous semble plutôt une alternative dont l’évolution est à surveiller, ou viable à utiliser sur des instances Nextcloud (coucou les Framaspaces !), plutôt qu’un service que nous voudrions proposer à grande échelle. Affaire à suivre…
Draw.io permet de créer des diagrammes professionnels. Ce service est plutôt adapté si vous souhaitez réaliser un organigramme ou un diagramme UML.
Dans les coulisses
La version de Draw.io que nous proposons actuellement est une version offline dans le sens où elle ne permet que l’enregistrement local, et ne permet pas la modification collaborative.
Il faut donc considérer notre version de draw.io comme un logiciel « à l’ancienne » où vous allez créer votre diagramme (dans votre navigateur), puis l’enregistrer. Il est cependant possible de partager votre diagramme publiquement (en lecture seule) en utilisant la commande « Fichier → Publier → Lien ».
Nous avons tout de même ajouté la possibilité d’enregistrer vos données sur Framagit (il faudra vous y créer un compte).
Les fonctions collaboratives en temps réel imposent, elles, de passer par les serveurs de la société Jgraph qui édite le logiciel, elles ne sont donc pour le moment pas supportées.
Nous choisissons cependant de tester draw.io car nous le trouvons très intéressant de par ses fonctionnalités avancées. Peut-être le proposerons nous, à terme, comme plugin au sein de Framaspace.
Là où Draw.io permet d’organiser des diagrammes, voyez plutôt Excalidraw comme un outil de « tableau blanc » (qui permet, aussi, de réaliser des diagrammes simples).
Cette simplicité rend Excalidraw, selon nous, plus accessible au grand public.
Dans les coulisses
Contrairement à Draw.io, notre version d’Excalidraw permet de travailler de façon collaborative. Nous expérimentons cette fonctionnalité, mais nous pourrions la retirer si nous ne la trouvons pas suffisamment stable et sécurisée. Cependant, Excalidraw utilisant à ce jour la plateforme Firebase de Google pour enregistrer les images en ligne, nous avons pour l’instant désactivé la possibilité d’ajouter des images dans notre version d’Excalidraw.
Notez que nous avons aussi évalué le logiciel tldraw, qui nous a paru une initiative intéressante, mais sa licence n’est pas libre car interdisant les usages commerciaux (ce qui n’aurait pas été le cas de Framasoft, mais ne répond pas pour autant aux exigences d’une licence libre).
Ahhhh, les PDF ! Un format ouvert certes, pratique pour l’impression, mais clairement pas adapté à la modification. Si vous devez réorganiser des pages, en supprimer, en ajouter, les faire pivoter, ou les signer, c’est assez rapidement la croix et la bannière. Par ailleurs, il faut parfois pouvoir réduire leur poids avant de l’envoyer par email. Ça tombe bien, les deux outils que nous proposons sont là pour ça !
Signature PDF
Créé par la société coopérative « La 24eme », ce logiciel permet, au travers de quelques entrées simples, de manipuler vos PDF :
« Signer » : permet de signer, parapher, tamponner un pdf, mais aussi de partager le PDF signé, pour qu’il puisse être signé par d’autres personnes ;
« Organiser » : permet de tourner les pages d’un PDF (rotation), de déplacer des pages, d’en supprimer, d’en ajouter (depuis un autre PDF, par exemple pour faire un seul PDF à partir de plusieurs fichiers), etc.
« Métadonnées » : permet d’afficher les métadonnées d’un fichier PDF (par exemple la date de création ou le logiciel utilisé pour sa création), mais aussi d’éditer ces métadonnées ou d’en supprimer ;
« Compresser » : pour réduire la taille d’un PDF. Si le PDF original a déjà été compressé, cela n’aura aucun effet évidemment. Mais nos tests ont démontré qu’un PDF constitué de pages scannées de 38Mo au départ n’en faisait plus que 6 au final, ce qui est un gain conséquent.
Là, on sort la grosse artillerie. Stirling PDF propose pas moins de 71 outils différents !
Depuis des outils « simples » (fusion, rotation, etc) à ceux bien plus complexes (extraire les tableaux d’un PDF pour un faire un fichier .csv exploitable par un tableur, ajuster les couleurs, transformer une URL de page web en PDF, etc), en passant par des fonctions bien utiles (protéger par mot de passe, numéroter automatiquement les pages, etc.). Il existe même un outil « pipeline » qui permet d’enchaîner différentes actions (par exemple : rotation 90°, puis suppression des pages 1 et 14, puis ajout de numéros de pages, puis compression).
Framaforms est basé sur le logiciel Yakforms, logiciel qui arrive en fin de vie. Pour différentes raisons (cf. « coulisses »), nous avons dû faire le choix de lui trouver un successeur, qui permettra de continuer à fournir un service proche de celui que vous utilisez actuellement.
Après moult essais-recherches (et quelques déceptions), notre choix s’est arrêté sur Liberaforms, un logiciel libre de formulaires créé et développé par une petite équipe espagnole.
Le « périmètre fonctionnel », c’est à dire l’ensemble de ce que vous pouvez faire avec ce logiciel, est sensiblement le même que celui que propose Yakforms, en dehors de certaines fonctions avancées (gestion de conditions, ou emails de validation, par exemple). Nous vous proposons de le tester sur notre plateforme https://beta.framaforms.org pendant plusieurs mois. Au terme de cette phase de tests, pendant laquelle nous pensons (si vous nous en donnez les moyens) améliorer quelque peu l’interface, nous pourrons alors commencer une bascule entre Yakforms et Liberaforms qui, rassurez-vous, s’étalera elle aussi sur plusieurs mois (vous ne perdrez donc pas vos formulaires en cours).
L’histoire de Framaforms/Yakforms s’étale sur près de 10 ans et est racontée sur le Framablog. Yakforms est donc basé sur Drupal 7, publié en 2011, qui aura donc eu une durée de vie de 14 ans, ce qui en fait une longévité relativement exceptionnelle pour une application web. La « fin de vie » de Drupal 7, plusieurs fois repoussée, s’achève finalement le 5 janvier 2025. À compter de cette date, il n’y aura donc plus de mise à jour de sécurité : si une faille était découverte, elle ne serait plus couverte (annoncée, réparée, suivie, etc) par la communauté, et donc Yakforms serait touché par ricochet.
Notre première idée a donc été, évidemment, de migrer Yakforms vers Drupal 8, 9, ou même maintenant Drupal 10. Cependant, c’était plus facile à dire qu’à faire, car Yakforms est composé de nombreux modules compatibles avec Drupal 7 mais pas avec les versions suivantes. C’est notamment le cas du module « form_builder » qui n’a jamais été porté dans les versions suivantes.
Il y a eu différentes tentatives de migration de Yakforms, la dernière en date par le Centre d’Expressions Musicales, au Havre, qui utilise massivement Framaforms (et bien d’autres logiciels libres, d’ailleurs). Mais le sujet étant complexe, le projet n’a pas abouti.
Début 2024, nous nous sommes donc lancés à la recherche de logiciels libres de formulaires alternatifs. Bonne nouvelle : le paysage avait bien évolué depuis la sortie de Framaforms en 2016, et de nombreuses alternatives existent aujourd’hui. Voici quelques unes des solutions testées :
https://www.limesurvey.org/fr : la référence en matière de logiciel libre d’enquête. Cependant, « enquête » ≠ « formulaire » ! LimeSurvey est un logiciel idéal si vous voulez réaliser une enquête de plusieurs dizaines ou centaines de questions, avec des embranchements, etc. Mais notre objectif avec Framaforms est de proposer une alternative à Google Forms, à savoir un logiciel simple à prendre en main, qui permet de publier son premier formulaire en 5mn chrono. Ce qui est très, très loin d’être le cas de LimeSurvey ;
https://apps.nextcloud.com/apps/forms : une app pour Nextcloud (logiciel que l’on connaît bien à Framasoft) pour créer des formulaires. Ce choix est arrivé en second dans notre évaluation. D’autant que nos ami⋅es du chaton La Contre-Voie ont apporté un développement spécifique permettant un accès simplifié. Mais nous avons estimé que le code de Nextcloud Forms n’était pas encore suffisamment stable pour nos besoins, ni capable d’accueillir des dizaines de milliers de visiteurs quotidien ;
https://cryptpad.fr/form/ : issu de l’excellente suite bureautique chiffrée Cryptpad. L’interface n’est pas très jolie, mais plutôt fonctionnelle. Cependant, le côté 100% chiffré du logiciel était, paradoxalement, rédhibitoire pour nous : nous gérons plusieurs centaines de milliers de formulaires par an, et un chiffrement de bout en bout aurait largement limité notre capacité de support, et donc multiplié les personnes qui se seraient plaintes auprès de nous ;
https://formbricks.com/ : ce logiciel nous a semblé tout à fait correct. Par contre, il est pensé pour faire de « l’enquête pas à pas » et non des formulaires. Par ailleurs, il nous aurait fallu adapter de nombreuses fonctionnalités (souvent marquées comme « pro » ;
https://getinput.co : comme SurveyJS, il s’agit plus d’une alternative à Typeform qu’à GoogleForms, avec « une question = un écran ». Le travail de traduction aurait été conséquent, mais nous l’avons éliminé aussi parce que bien que le code soit libre, l’entreprise qui édite ce logiciel semble avoir une politique commerciale relativement agressive et n’aurait probablement pas bien accepté de voir Framasoft proposer son logiciel gratuitement, devenant un concurrent de poids qui aurait « récupéré » leur travail ;
https://ec.europa.eu/eusurvey/ : Développé par l’Union Européenne depuis 2016. Le rythme de développement est relativement lent. Ça aurait pu être un candidat intéressant, mais le code nous a semblé une véritable usine à gaz, puisque conçu pour gérer des formulaires au sein d’institutions publiques de grandes tailles, avec l’obligation de gérer plusieurs langues, etc ;
https://ohmyform.com/ : là encore, plutôt une alternative à Typeform qu’à Google Forms. Notez qu’en l’absence de plateforme pour tester ce logiciel, il vous faudra donc l’installer. Par ailleurs, le développement, bien que toujours en cours, semble relativement ralenti ;
https://tripetto.app/ a clairement le concepteur de formulaire le plus avancé. Malheureusement le logiciel est uniquement en anglais (et non facilement traduisible). Mais surtout, si le « builder » (l’interface de création de formulaire) est libre, d’autres parties essentielles du logiciel ne le sont pas, ce qui était évidemment rédhibitoire pour nous ;
Nous avons aussi évalué plusieurs outils « no-code » (comme NocoDB ou Baserow) qui sont aussi très pertinents pour créer des formulaires. Cependant, nous avons estimé que nous n’étions pas sur des outils simples à prendre en main alors que c’était un critère essentiel pour nous. Nous n’excluons pas de proposer ces outils à termes, mais cela nous paraissait prématuré pour le moment.
https://gitlab.com/liberaforms/liberaforms – ce n’est ni la plus belle, ni la plus moderne des alternatives testées. Cependant, elle fait correctement le travail, et semble bien pouvoir passer à l’échelle en gérant plusieurs dizaines ou centaines de milliers de formulaires. Par conséquent, nous avons contacté les développeurs de Liberaforms, qui semblaient enchantés que Framasoft propose leur logiciel à l’évaluation (merci à eux !).
Le logiciel n’était pas traduit en français, alors… nous l’avons fait ! Un grand merci à Framalang, spf et Booteille pour leur aide !
Dans les mois qui viennent, grâce à vos dons, nous nous appliquerons donc à finaliser la traduction, à améliorer l’interface (notre code sera bien évidemment reversé auprès de la communauté Liberaforms), et évaluerons vos retours pour déterminer si, oui ou non, Liberaforms remplacera à terme Yakforms comme moteur de Framaforms.
Framaspace, de l’accompagnement pour une plus grande autonomisation
Framaspace accueille plus de 1 100 associations et collectifs. Nous envisageons de doubler ce chiffre, au moins, d’ici la fin de l’année. Ce qui positionne Framasoft comme un des plus gros hébergeurs Nextcloud (le logiciel qui motorise Framaspace) de France, hors opérateurs type OVH.
Mais il nous reste un problème majeur auquel il faut répondre : comment accompagner les personnes qui découvrent Nextcloud ? En effet, comme nos enquêtes le démontraient, et comme nous l’indiquions dans notre conférence de lancement, Nextcloud reste relativement peu connu, et pas aussi simple à prendre en main qu’un Google Drive, par exemple. Il nous faut donc trouver des façons qui permettent à une personne qui n’a jamais utilisé le logiciel de s’y retrouver : qu’elle puisse importer ses fichiers ou calendriers, qu’elle sache comment partager publiquement un fichier, qu’elle comprenne comment utiliser le tableur ou le traitement de texte intégré, etc.
Nos actions en cours sont nombreuses sur le sujets : nous soutenons par exemple l’initiative d’ateliers Nextcloud (en juin 2024) organisé par L‘Établi Numérique et La Dérivation. Nous avons aussi un stagiaire, Val, qui travaille sur deux sujets : faciliter la migration depuis un espace cloud externe (Google Drive, Dropbox, ou même un autre Nextcloud) vers Framaspace ; proposer un tutoriel aux nouvelles et nouveaux arrivants sur Framaspace, en utilisant la bibliothèque IntroJS.
Vidéo de démonstration de l’application IntroJs, développée par Val, pour faciliter la prise en main de Framaspace.
Là encore, vos dons nous permettent de faire, et surtout de faire sans trop attendre.
Passez à l’action ! Pour pouvoir répondre à vos besoins et vos envies en termes de services libres émancipateurs, nous nous sommes fixés un objectif de collecte de 60 000€ qui nous permettront de mettre l’énergie nécessaire à la mise en place de ces services. Si vous le pouvez : soutenez-nous !
D’autres projets sont en cours, mais sont, eux, plus incertains.
Leur mise en place dépendra évidemment du succès de cette collecte (oui, on manque peut-être un peu de subtilité 😉), mais aussi des résultats des études de faisabilité technique qui sont en cours.
Nous pouvons cependant les évoquer ici, en insistant sur le fait qu’en parler maintenant n’est pas pour autant un engagement de mise en place de notre part.
Aktivisda : décliner des visuels rapidement
Un des besoins récurrents repérés parmi les associations que Framasoft côtoie est celui de pouvoir rapidement créer ou décliner des visuels. Par exemple, pour une chorale qui ferait 5 représentations en fin d’année, il s’agit surtout, sur la base d’un affiche commune, de changer les dates, les heures, et les lieux. C’est un besoin simple, qui doit prendre quelques minutes maximum, afin de consacrer l’essentiel du temps et de l’énergie à imprimer et diffuser les affiches.
C’est aussi le même besoin qui revient avec les réseaux sociaux, où le besoin est d’avoir un visuel commun identifiable (par exemple avec le logo de l’association), puis de pouvoir ajouter un texte dessus pour inviter à une action ou un événement.
Par ailleurs, mettre à disposition ce type d’outil permettant en quelques clics de partager un visuel (une affiche, par exemple), de l’imprimer, ou de créer un code QR personnalisé, nous semble utile dans le contexte social et politique actuel.
Ce sont justement à ces besoins que répond le logiciel Aktivisda.
Éditer un visuel dans Aktivisda (un message subliminal s’est glissé dans cette capture, saurez-vous le retrouver ?)
Pour l’instant, aucune version « diffusée par Framasoft » n’est disponible, mais nous travaillons avec le développeur originel, ainsi que la société qui l’emploie (Telescoop) afin de faciliter son déploiement pour de multiples organisations, ainsi que l’ajout de nouveaux visuels (il faut actuellement passer par Framagit, ce qui peut être fastidieux).
Nous espérons donc, d’ici la fin de l’année, revenir avec de bonnes nouvelles du côté de Aktivisda 🙂
C’est un peu par hasard, lors des JDLL 2023 que nous avons découvert Aktivisda. En décembre 2023, nous rencontrions alors son développeur, Marc-Antoine, avec qui nous avons discuté de ses projets pour Aktivida, mais aussi de nos envies et de nos besoins d’un logiciel plus simple à déployer. Les échanges se sont poursuivis ponctuellement, mais régulièrement, avec l’objectif de rendre le logiciel multi-tenant, c’est à dire facilement utilisable par de multiples individus ou organisations. Marc-Antoine et ses collègues sont actuellement en train d’explorer le sujet (de façon bénévole, précisons-le), et nous y verrons donc plus clair d’ici quelques semaines.
Framaspace : gestion des adhérent⋅es, de la comptabilité, nouvelles applications
Comme évoqué plus haut, l’année 2024 sera largement dédiée à améliorer la prise en main et l’accompagnement des utilisateur⋅ices qui découvrent Framaspace.
Cependant, cela ne signifie pas que nous n’allons pas avoir de missions plus techniques. Ainsi, nous comptons passer tous les espaces en version 29 (vous pouvez en lire une description en français chez nos ami⋅es d’Arawa. En parallèle, nous allons évaluer l’ajout de quelques applications, comme par exemple Tables qui permet de construire et partager une petite base de données, ou Impersonate pour permettre à l’admin d’un espace de dépanner un utilisateur. Suivant vos retours sur Excalidraw (évoqué plus haut), nous pourrons aussi le proposer comme application complémentaire.
Tables dans Framaspace : créer des tableaux pour différents usages
Tables dans Framaspace : des formulaires pour que vos utilisateur⋅ices puissent saisir leurs données
Tables dans Framaspace : visualisez et manipulez vos données
Cependant, le plus gros du travail, qui commencera au second semestre 2024, sera de voir jusqu’où nous pouvons aller dans l’intégration de Paheko dans Framaspace. Paheko est un logiciel libre de gestion d’associations complet et qui bénéficie aujourd’hui d’une belle réputation. De plus son développeur est français, et impliqué dans différentes communautés libristes depuis longtemps. Lors du dernier camp CHATONS, nous avons commencé à discuter de la possibilité d’intégrer des parties de Paheko à Framaspace. Notamment, nous savons que pouvoir gérer les adhérent⋅es (dates d’entrée et sortie de l’association, gestion des cotisations, etc.), mais aussi la comptabilité (suivant le Plan Comptable Associatif) seraient de gros avantages pour Framaspace. Pour l’instant, nous sommes toujours dans une démarche exploratoire, mais l’idée nous paraît suffisamment importante pour que nous y consacrions du temps et de l’énergie.
Nous ne sommes pas climato-sceptiques. Nous considérons que le réchauffement climatique est la mère de toutes les batailles. Nous pensons que la réponse au dérèglement climatique est avant tout politique, et nous sommes irrité⋅es de voir à quel point les politiques publiques sont avant tout orientées, parfois de façon très culpabilisantes, sur les gestes individuels. Cependant, pour pouvoir correctement faire face à un problème et y répondre de façon pertinente, il peut être utile de bien comprendre les enjeux, mais aussi les leviers sur lesquels agir. C’est dans cette optique que Framasoft, en partenariat avec le groupement de recherche Labos 1point5 souhaite proposer, à moyen terme, une application en ligne permettant d’évaluer l’empreinte carbone de son association (ainsi qu’un simulateur permettant de voir l’impact de chaque levier activable).
Possibilité de jouer sur des leviers impactant l’empreinte carbone
Évaluation de l’empreinte carbone
Saisie de données dans l’application 1point5
Dans les coulisses
Il n’y a pas, et il n’y aura jamais de numérique « vert ». Le numérique est intrinsèquement écocidaire. Cependant, nous vivons dans un monde où le numérique existe, et a aussi des apports (pour calculer, pour communiquer, pour être en lien, pour faire ensemble, etc.). Et ni vous, ni nous, ni personne, ne peut faire disparaître le numérique d’un claquement de doigts. C’est ce qu’on appelle une problématique complexe, face à laquelle aucune solution n’est triviale. Les solutions aux problèmes complexes reposent souvent sur des décisions politiques à grande échelle. Et le plus souvent, ces décisions font face à une grande réactance au début, ce qui est assez naturel.
Concernant le réchauffement climatique, nous ne croyons pas aux « petits pas », et nous condamnons les politiques publiques qui pointent beaucoup plus facilement les gestes individuels (le fameux « pipi sous la douche ») plutôt que les actions à grande échelle.
Cependant, pour bien comprendre un problème complexe, il faut pouvoir prendre conscience des « sous-problèmes » qui le composent. Et là, ça tombe bien, Framasoft peut avoir un (petit) rôle à jouer.
Ainsi, nous avons été contacté·es il y a quelques mois par le Groupement de Recherche Labos 1point5 qui propose, pour les labos de recherche (Universités, CNRS, etc.) des outils pour évaluer et comprendre l’empreinte carbone liée au laboratoire. Ils et elles nous ont annoncé travailler sur un outil équivalent, mais destiné aux associations et nous ont demandé si nous serions d’accord pour « porter » ces outils auprès du monde associatif.
Pour être franc⋅hes, nous avons d’abord hésité, car ce genre d’outils fait souvent l’objet de gros biais de calcul, et « oublie » le scope 3 (et même parfois le scope 1). Mais nous avons testé l’outil, et l’avons trouvé très complet. Par ailleurs, le fait que ces outils soient produits par des chercheuses et chercheurs pointu⋅es sur ce sujet permet de sortir des nombreuses démarches marketing de « greenwashing » que l’on peut observer ces derniers temps.
Nous avons donc entamé un dialogue qui nous semble fort constructif. Pour l’instant, nous laissons l’équipe de recherche avancer sur le sujet, et nous vous tiendrons informé⋅es des avancées d’ici quelques mois.
D’ici là, si votre association est intéressée à tester lesdites avancées ou à participer aux échanges avec les chercheuses et chercheurs, vous pouvez vous inscrire au panel d’associations testeuses.
Ah… Framadate sur mobile… Si on avait touché 1€ à chaque fois que l’on avait reçu une plainte concernant l’usage de Framadate sur smartphone, nous n’aurions probablement pas besoin de faire de collecte 😅.
Cependant, le code de Framadate est tellement daté (certaines parties du code datent de 2008) qu’il paraît aujourd’hui bien plus simple de repartir de zéro.
Bref, ça ne sera pas pour tout de suite, et surtout, on ne sait pas encore quelle sera la voie (longue, mais libre) suivie par Framasoft, mais les choses avancent 🙂
Nous étudions aussi de près la possibilité de mettre à votre disposition des outils « No Code » comme Baserow ou NoCoDB, car ils nous semblent répondre à des besoins courants. Cependant d’un point de vue technique, ce n’est pas simple (ces logiciels sont gourmands et coûtent donc cher à héberger), et il s’agit de logiciels un peu complexes à prendre en main, donc il faudrait aussi travailler à leur accompagnement.
Pour tout cela, nous avons (encore) besoin de votre aide
Félicitations si vous nous avez lu jusqu’ici, car nous avions beaucoup à dire !
Vous l’aurez compris, de nombreux chantiers sont en cours, et il nous faudra des semaines, voire des mois, pour les faire avancer.
Cependant, comme toujours, nous ne pourrons nous atteler à ces projets que si vous nous donnez les moyens de le faire.
Nous pensons sincèrement que nous avons la possibilité de faire bouger les lignes, comme nous l’avons fait avec Framadate, Framalistes, Framapad, ou maintenant Framaspace. Le contexte politique et social actuel nous presse à « outiller la société de contribution », c’est à dire à équiper numériquement celles et ceux qui souhaitent changer le monde vers plus de collectif, plus de diversité, plus de communs. Notre boussole reste notre volonté de vous proposer des outils libres et éthiques, un peu comme si nous fournissions des planches, des marteaux et des clous numériques pour que vous puissiez concrétiser les projets qui vous ressemblent, et non ceux qui sont téléguidés par les géants du numérique.
Nous pensons avoir prouvé lors de ces dix dernières années de « dégooglisation » que votre confiance n’était pas mal placée, et que chaque euro perçu avait été bien dépensé.
Aujourd’hui, au regard de nos ambitions à vous proposer de nouveaux services (mais aussi à maintenir ceux qui sont en place !), nous faisons donc de nouveau appel à votre générosité, en vous rappelant que l’association Framasoft ne vit que de vos dons, et en vous invitant donc, si vous en avez l’envie et les moyens, à nous soutenir pour cette nouvelle campagne. Merci 🙏
Pour Framaspace, Framasoft a fait développer un outil de supervision de sites web nommé Argos Panoptès (ou juste Argos pour aller plus vite).
Développé par Alexis Métaireau, développeur entre autres du générateur de site statique Pelican, et de l’outil de gestion de dépenses à plusieurs « I Hate money » (repris dans l’app cospend sur Nextcloud), le besoin a été défini par Luc Didry, l’administrateur système de Framasoft.
Luc et Alexis répondent à nos questions dans cet interview, pour plus d’information concernant Argos vous pouvez consulter l’article dédié.
Bonjour à tous les deux 🙂 Ici on connaît déjà Luc puisque c’est notre admin sys préféré, mais Alexis, peux-tu nous dire qui tu es pour le framablog ?
Alexis : Bonjour, Framasoft, et merci pour la discussion ! Et bien, c’est parti pour l’exercice de la présentation alors.
Je suis un développeur de bientôt 40 ans, intéressé par les dynamiques collectives, le logiciel libre et la protection des données personnelles, depuis quelques années maintenant. Par le passé j’ai pu publier et maintenir quelques outils comme Pelican, un générateur de sites statiques et I hate money, pour gérer les dépenses partagées. J’ai travaillé quelques années pour Mozilla sur la partie synchronisation et chiffrement des données (Firefox Sync, Kinto) et sur quelques autres outils.
J’ai quitté le développement « pro » entre 2018 et 2023. Durant ces années j’ai eu la chance / le privilège de pouvoir monter une brasserie sur Rennes avec un ami. Nous avons essayé de faire vivre les valeurs de la collaboration (plutôt que celles de la compétition). Cela est resté très proche des valeurs du logiciel libre, nos recettes et les plans de nos machines étant par exemple publiés sur notre site web.
À l’été 2023 j’ai décidé de quitter la brasserie pour à la fois refaire du développement et travailler sur les outils de la prise de décision collective, et la gestion des conflits dans les collectifs. C’est à ce moment que nous sommes rentrés en contact avec Luc pour travailler sur Argos.
Pouvez-vous nous présenter l’outil Argos sur lequel vous avez travaillé ? À quel besoin répond-il pour Framaspace ?
Alexis : Argos est un outil de supervision de sites web. L’idée est assez simple: surveiller que les sites vont bien, et générer des alertes quand c’est utile, en envoyant des notifications par email ou autre.
La spécificité d’Argos est de pouvoir gérer un nombre de sites important. Framaspace, en grossissant, expose pas loin de 900 domaines au public, qui parfois tombent en panne. Je crois que le réel besoin derrière Argos était de simplifier la vie de Luc (vous saviez qu’il n’y avait qu’un seul adminsys chez Framasoft ?!!) et de lui permettre d’avoir une meilleure vision globale de l’état du service.
Les vérifications concernent les statuts du site web, mais aussi l’état des certificats SSL, par exemple, et quelques vérifications spécifiques.
Luc : On surveillait déjà plus de 200 sites via notre outil de supervision (Shinken), mais celui-ci, avec toutes les autres sondes de supervision de notre infrastructure, avait bien de la peine à repasser toutes les 5 minutes sur les sites. Ce qui faisait qu’on pouvait se rendre compte qu’un site était tombé au bout de trop de temps.
Avec Framaspace, je savais que j’aurai des centaines (et à terme des milliers) de sites à surveiller en plus, sachant qu’un site est la cible de plusieurs vérifications, comme dit par Alexis. Il fallait donc un outil dédié.
Les outils existants comme statping-ng ou Uptime Kuma présentent un défaut rédhibitoire : vouloir afficher l’état de chaque site en même temps sur l’interface web. Ça va bien quand on a quelques sites, pas quand on en a des centaines (l’outil peine à envoyer les données de centaines de sites).
C’est de là qu’est née l’idée d’Argos, qui a le bon goût de n’afficher qu’un résumé de l’état des sites par défaut.
Si on regarde de plus près les coutures, on voit que c’est développé en langage Python avec une base de données en PostgreSQL. Laissez-moi deviner : Alexis a choisi Python et Luc a choisi PostgreSQL ?
Alexis : Ah, je vois que tu nous connais un peu, mais figure toi que même pas ! J’aurais aimé plaider coupable pour le coup, mais Luc cherchait spécifiquement quelqu’un qui savait faire du Python, et c’est comme ça qu’on s’est rencontré. J’ai proposé d’utiliser le framework FastAPI à la place de Flask parce que ça nous permettait de faire de l’asynchrone de manière plus simple, et d’utiliser les fonctionnalités de typage de Python.
Luc : Pour Framaspace, j’ai été plus ou moins obligé de faire du Python car Salt, l’orchestrateur utilisé pour déployer les espaces est en Python : je pouvais, en utilisant ce langage, l’utiliser comme une bibliothèque, sans utiliser de bidouilles sales.
Comme Argos a été créé dans le cadre de Framaspace, j’ai voulu garder le même langage de programmation, pour avoir un tout cohérent.
Python n’est pas un langage si pire que ça. Il n’est pas amusant, mais ça fait le job. Peut-être aussi que je vieillis : j’utilise de plus en plus Python pour des scripts. Peut-être qu’écrire des scripts ne m’amuse plus, et que je veux les écrire vite pour passer à autre chose.
La question habituelle de libriste : pourquoi avez-vous choisi de développer un outil dédié, il n’existait pas d’outils libres pour de la supervision ? Quelles sont ses spécificités ?
Alexis : Je te laisse répondre Luc, c’est toi qui a affiné le besoin 🙂
Luc : Ah bah zut, j’ai déjà répondu au-dessus 😅
L’avantage d’avoir notre propre outil nous permet aussi de le tordre pour nos besoins spécifiques. Ainsi Argos envoie-t-il des notifications à notre serveur Gotify. Intégrer un tel canal de communication dans un outil existant aurait pu prendre du temps (comprendre le code, faire une PR, attendre une release…).
En lisant la doc, ça a l’air tout simple à utiliser par rapport à d’autres outils !! Comme administrateur⋅ice système du dimanche après-midi, si je veux surveiller l’état de mes sites, est-ce qu’il y a des pièges ou des choses à savoir ?
Alexis : Je pense que ça pourrait tout à fait permettre de surveiller l’état de quelques sites, bien que peut-être surdimensionné. Argos a besoin de lancer un serveur, une base de données et des agents. Est-ce bien utile pour un⋅e adminSys du dimanche ? Peut-être !
Luc : Franchement, je pense qu’il peut être utilisé aussi bien par une grosse organisation que par un·e adminSys du dimanche. La configuration est simple, l’installation pas très compliquée, et il n’a pas l’air de consommer beaucoup de ressources.
Alexis tu étais en mode prestation pour développer, comment s’est passée la relation avec Framasoft ?
Alexis : Franchement, c’était une surprise totale, et un plaisir du début à la fin. On a d’abord pu se faire quelques appels avec Luc pour clarifier les besoins, je me suis retrouvé avec une liste de fonctionnalités de base, et j’ai avancé comme ça.
Quand j’avais besoin j’ai pu échanger avec Luc qui était toujours assez réactif, et j’ai pu lever quelques blocages. J’ai beaucoup apprécié répondre à un besoin concret, en ayant l’utilisateur final au bout du fil pour clarifier les choses.
Par la suite, on a pu se faire quelques sessions ensemble, à la fois de présentation de l’outil, puis de pair-programming pour accompagner Luc sur certains aspects quand c’était utile, l’idée étant que ce soit lui qui prenne la main sur le projet.
C’était en fait ma première mission en tant que « prestataire », je crois que je suis très bien tombé !
Luc : Pareil de mon côté, c’était très agréable de bosser avec toi !
Est-ce que vous pensez que ça peut être utilisé dans d’autres contextes que Framaspace ?
Alexis : je pense que ça peut être utilisé dans d’autres contextes bien sûr. Je pense aux « fermes de sites », comme par exemple ce que peut faire NoBlogs en Allemagne, mais de manière générale c’est utile d’avoir un outil simple d’accès pour faire de la supervision. Bosser là-dessus m’a donné envie de permettre de faire de la supervision « en tant que service », pour des collectifs pour qui ce serait utile, mais… j’imagine que c’est une autre histoire.
Luc : Carrément ! Pas seulement pour des fermes de sites mais partout où on a besoin d’une supervision qui passe très régulièrement. On peut avoir des vérifications effectuées toutes les minutes, ce qui peut être utile sur des sites qui ne doivent pas tomber. Et un grand nombre de sites ne devrait pas faire peur à Argos : on peut multiplier le nombre d’agents (le logiciel qui s’occupe d’effectuer les vérifications et d’en remonter le résultat au serveur), et le choix de PostgreSQL comme base de données a (aussi) été fait parce que c’est un SGBD robuste qui peut encaisser de la charge de travail.
Et est-ce que vous imaginez une suite, avec une feuille de route ou des invitations à contribuer ?
Luc : Il y a déjà des idées de développements futurs pour améliorer Argos, mais ça n’est pas urgent : la première version est déjà tout à fait fonctionnelle.
Alexis : J’aime bien l’idée de ne pas avoir de feuille de route trop précise pour le futur, ce qui nous permet de se concentrer sur des besoins réels et de ne pas en faire une usine à gaz. Si vous l’utilisez et que vous avez des retours à faire, ou bien si vous souhaitez contribuer, n’hésitez pas. C’est pensé pour être simple à étendre, donc n’hésitez pas à jeter un œil et à proposer des changements.
Si vous avez encore des choses à dire 🙂
Alexis : Coucou Numahell, chouette de te recroiser par ici après ces quelques années 🙂
Luc : Merci à toi, Alexis, pour le temps bénévole que tu as consacré à Argos après ta prestation !
Argos Panoptès : la supervision de sites web simple et efficace
Un nouvel outil de supervision de sites web vient de sortir de la forge de Framasoft, tout beau, tout neuf, tout simple. Mais pourquoi ? On vous explique tout !
Le problème
Chez Framasoft, nous avons beaucoup de sites web. Vous connaissez les adresses de nos services, https://framacarte.org pour Framacarte, https://framapad.org pour les pads, etc.
Mais il y en a bien plus sous le manteau : nos outils associatifs (un Nextcloud, un Odoo, des wikis…), les versions de test des services (soit pour tester un nouvel outil, soit pour vérifier que la mise à jour se passera bien…), les sites des amis qu’on héberge (coucou Grisebouille, Affordance et les autres 👋), etc.
Comme je (nda : Luc) suis quelqu’un de plutôt méticuleux, tous nos sites sont supervisés, c’est-à-dire que nous avons un système qui vérifie périodiquement qu’ils fonctionnent bien, de façon à détecter rapidement un souci et le résoudre au plus vite.
Jusque là, nous utilisions Shinken pour toute notre supervision : aussi bien celle des sites web que celle des serveurs. Mais nous commencions à nous heurter à différents problèmes :
Shinken est en Python 2, une version totalement obsolète de Python, ce qui n’augure pas bien de la pérennité de l’outil (il est question d’une version en Python 3, mais qui se fait largement attendre)
nous avons trop de sondes (c-à-d de choses à superviser) pour que la vérification des sites se fasse suffisamment régulièrement à mon goût (je veux des tests toutes les 5 minutes, pas tous les quarts d’heure)
Nous devons migrer vers une autre solution de supervision, mais pour ça, il faut du temps que nous n’avons pas. Et Shinken fonctionne toujours, donc ce n’est pas une chose que je juge urgente.
Cependant, avec l’ouverture de Framaspace, le nombre de sites à surveiller allait nécessairement exploser (plus de 1 000 espaces à l’heure actuelle).
Il nous fallait donc une solution de supervision pour les sites pour éviter d’augmenter les problèmes de délai entre chaque vérification de site.
Une devise du monde Unix est « Un outil qui fait une chose et qui le fait bien ». Suivant cela, j’ai cherché des outils de supervision de sites web et de rien d’autre. J’ai trouvé statping-ng et Uptime Kuma.
Malgré leurs qualités, ces solutions souffrent du même problème : l’affichage sur la page d’accueil des résultats de toutes les sondes, avec l’historique des résultats sous forme d’une petite frise chronologique. Avec quelques sites à superviser, pas de souci. Avec plus de 100 sites, soit c’est l’affichage qui ne fonctionne plus, soit c’est le service lui-même qui peine… très fort !
Il nous fallait donc créer nous-même notre outil de supervision !
La solution
Comme la plupart des développeurs, j’ai commencé par le plus important : trouver un nom à notre logiciel ! 😅
Pour rester dans la thématique de la mythologie grecque des développements faits pour Framaspace, j’ai cherché sur le web et suis tombé sur Argos Panoptès, géant aux cent yeux, dont l’épithète Panoptès signifie « celui qui voit tout » (on se contentera de l’appeler « Argos » dans cet article)
La deuxième chose la plus importante dans le développement est… le temps disponible. Et nous n’en disposions pas. C’est pourquoi nous avons pris un prestataire, Alexis Métaireau, développeur entre autres du générateur de site statique Pelican, et de l’outil de gestion de dépenses à plusieurs I Hate money (repris dans l’app cospend sur Nextcloud), pour poser les bases d’Argos, en suivant notre cahier des charges.
Argos devait être simple pour être efficace. L’écran d’accueil est donc dépouillé du superflu et n’indique que le nombre de sites surveillés regroupés par état (inconnu, OK, attention, critique).
Les mêmes informations sont aussi disponibles en JSON via un point d’API. À vous d’en faire ce que vous voulez, comme par exemple afficher une notification sur votre bureau si tout n’est pas au vert, déclencher un son… voire intégrer le résultat d’Argos dans votre solution de supervision pour tout avoir au même endroit ! L’API est auto-documentée sur le logiciel (la documentation est accessible depuis l’interface d’Argos).
La simplicité d’Argos réside aussi dans son mode d’installation : un simple pip install argos-monitoring aussi bien pour le serveur central que pour l’agent, une création d’une base de données PostgreSQL, un fichier de configuration en YAML et c’est tout. Avec ça, on a tout ce qu’il faut pour faire tourner le service.
La robustesse
Un mot : PostgreSQL. J’ai toute confiance en PostgreSQL pour encaisser une forte charge comme pourrait lui envoyer Argos.
Plus concrètement, nous sommes passés de ±300 vérifications avant Framaspace à près de 2 000 en surveillant les espaces créés et Argos ne bronche pas.
Cela fait plusieurs mois maintenant que nous utilisons Argos en conditions réelles et passé la phase de débogage, ça se passe parfaitement bien 🥰
L’évolutivité
Vous ajoutez plein de sites et l’agent qui s’occupe de faire les vérifications et de les envoyer au serveur central ne suffit plus ? On peut ajouter autant d’agents supplémentaires que nécessaire en quelques minutes.
Vous voulez créer une nouvelle manière de vérifier que votre site fonctionne bien ? Le site de documentation est riche d’informations pour les développeur·euses et vous tend les bras 🙂
Les moyens de notifications actuels (mail et Gotify à l’heure de l’écriture de cet article) ne vous conviennent pas ? Le code, en Python, est très propre et il est très simple d’ajouter… à peu près n’importe quel moyen de communication, d’un webhookMattermost à un SMS via une plate-forme quelconque.
Conclusion
Nous avons maintenant une solution de supervision spécialisée simple et efficace, flexible de par la simplicité de son code et qui nous donne déjà entière satisfaction.
Si Argos est déjà pleinement fonctionnel, il ne tient qu’à nous (et à la communauté !) de l’améliorer. Il y a déjà quelques tickets, majoritairement pour améliorer la documentation, mais pas que.
Est-ce qu’Argos Panoptès sera adopté par les administrateurices systèmes, du dimanche ou pas ? On verra bien !
Pour celleux qui se demandent pourquoi une queue de paon en image d’illustration de cet article : la déesse Héra a préservé, sur une queue de paon, les cent yeux d’Argos Panoptès après sa mort.