❌

Vue normale

Aujourd’hui — 28 avril 2025Flux principal

WoPiX, un serveur WOPI libre, indépendant, simple et léger

Un serveur WOPI (Web application Open Platform Interface) permet Ă  un logiciel client de modifier un fichier stockĂ© sur un serveur. C'est la couche indispensable pour qu'OnlyOffice, LibreOffice (Collabora Online) et d'autres suites bureautiques puissent ĂȘtre utilisĂ©s sur le web. Ainsi, lorsque vous rĂ©clamez l'ouverture d'un document depuis votre navigateur web, vous vous connectez Ă  la suite bureautique en ligne avec une URL particuliĂšre, contenant, entre autres, le nom du fichier Ă  ouvrir. La suite bureautique peut alors discuter avec le serveur WOPI pour rĂ©cupĂ©rer le document. Les lectures, Ă©critures et modifications d'un document sont gĂ©rĂ©es par le serveur WOPI, Ă  la demande de la suite bureautique. Le protocole a Ă©tĂ© créé par Microsoft en 2012, la rĂ©vision 14.5 de WOPI est sortie le 18 fĂ©vrier 2025.

Les serveurs WOPI libres de Nextcloud, Seafile, Tracim
 ne sont pas indépendants. Comme je voulais utiliser Collabora Online sans déployer un NextCloud complet, j'ai écrit un serveur WOPI trÚs simple. Il est utilisé depuis plus d'un an sans problÚme et il est libre. Il est écrit en Java.

J'ai commencĂ© ce dĂ©veloppement car je travaille sur deux lieux privĂ©s diffĂ©rents avec un ordinateur Ă  chaque endroit, un NAS dans l'un d'eux et je communique entre les deux machines Ă  l'aide d'un dĂ©pĂŽt git sur le NAS. Ça fonctionne relativement bien pour des fichiers qui n'ont pas vocation Ă  rester ouverts dans des applications, mais pour des fichiers ODS ou ODT qui restent ouverts, c'est plus compliquĂ© car je me retrouve souvent avec des versions concurrentes sur les deux machines. J'ai donc regardĂ© du cĂŽtĂ© des suites de collaboration en ligne.

À une Ă©poque , je me servais d'Etherpad et de son Ă©quivalent tableur Ethercalc. Mais ces logiciels manquent de fonctionnalitĂ©s, surtout le tableur. ProblĂšme supplĂ©mentaire : j'ai dĂ©jĂ  beaucoup de fichiers aux formats LibreOffice.

Ça tombe bien, il y a la suite LibreOffice online, Ă©ditĂ©e par Collabora Online (CODE). Le problĂšme — comme soulignĂ© par une dĂ©pĂȘche — c'est qu'une fois CODE installĂ©, tu te retrouves Ă  poil avec rien qui marche : il faut un serveur utilisant le protocole WOPI.

Pour éviter d'installer tout un NextCloud, j'ai écrit un petit serveur WOPI. C'est du Java avec Spring Boot. Le serveur est trÚs simple, sur le principe que plus un systÚme est simple, moins il a de chances de tomber en panne.

Par exemple, il n'y pas de droits d'accĂšs et on ne peut pas avoir plusieurs utilisateurs simultanĂ©s. Il faudrait mettre en Ɠuvre le systĂšme de verrous et le systĂšme de droits d'accĂšs (faire reposer les droits d'accĂšs sur les droits du systĂšme de fichier, implique d'avoir un utilisateur sur la machine pour chaque utilisateur du logiciel). Cela n'a pas Ă©tĂ© implantĂ© parce que je suis le seul utilisateur sur ma machine. Mais ce ne serait pas long Ă  dĂ©velopper.

Le serveur une fois lancĂ© expose des services REST, accessibles par la suite bureautique, mais aussi un service https qui permet d'afficher la liste des fichiers. Cette liste de fichier est cliquable et permet de se connecter Ă  Libre Office avec la bonne URL. C'est la raison des paramĂštres proxyHost et code URL de l'application : ĂȘtre en mesure de gĂ©nĂ©rer la bonne URL.

Liste des fichiers

Le code est prĂ©vu pour avoir plusieurs backends Ă  l'aide d'une interface. Le seul mis en Ɠuvre pour l'instant c'est un stockage sur disque local (avec auto discovery : on lui donne un rĂ©pertoire et il expose tout les documents du rĂ©pertoire).

Il consomme peu de ressources, la charge dépendra plus de Collabora Online ou d'OnlyOffice. Le serveur WOPI se contente de lire un fichier à l'ouverture et de l'écrire de temps en temps (comme lors des enregistrements automatiques).

Il n'est pas testé avec OnlyOffice. En principe WOPI est une norme et ça devrait fonctionner.

On peut le lancer avec java -jar. C'est du Spring Boot. On pourrait utiliser systemd. De mon cÎté, je l'ai mis dans un container docker qui lance la commande suivante

java -Dlogging.level.root=INFO \
     -Dlogging.level.org.wopiserver=INFO \
     -Dserver.port=8880 \
     -jar /opt/app/app.jar \
     --baseDir /mnt/docs \
     --disableTLSCheck \
     --codeURL https://172.17.0.8:9980 \
     --proxyHost 192.168.124.252

Le code de WoPiX est dispo sur github et je suis ouvert Ă  toute requĂȘte :-)

Commentaires : voir le flux Atom ouvrir dans le navigateur

À partir d’avant-hierFlux principal

La version 2.2 de LDAP Synchronization Connector est lĂ  !

LDAP Synchronization Connector (LSC) est un outil de synchronisation de données entre référentiels d'identités (annuaires LDAP, bases de données, API REST, 
) disponible sous licence BSD.

Logo LSC

Ce logiciel a été créé il y a plus de 20 ans et est déployé dans de trÚs nombreuses organisations qui l'utilisent le plus souvent pour alimenter les comptes et groupes dans leur annuaire d'entreprise depuis leur outil RH, ou bien pour synchroniser les données entre OpenLDAP et Active Directory.

La version 2.2, en préparation depuis plusieurs années, a enfin vu le jour en ce mois d'avril 2025, grùce au travail de la société Worteks et à l'aide du programme NGI Commons de NLnet.

Configuration par variables d'environnement

La configuration de LSC se fait dans un fichier XML. Il est désormais possible d'y mettre des variables d'environnement pour par exemple passer facilement d'un environnement à un autre ou récupérer des secrets à la volée.

Voir la documentation

Hooks

Il existait déjà un plugin LSC nommé Executable qui lançait des scripts pour les ajouts/suppressions/modifications/renommages, rendant le logiciel compatible avec tous les référentiels si tant est qu'on puisse exécuter une commande pour s'y connecter.

Mais le nouveau systÚme de hook est différent : cette fois-ci les opérations sont bien réalisées avec le connecteur natif (mais aussi pourquoi pas avec le plugin Executable) et en cas de succÚs, pour chaque opération et entrée, une commande est lancée.

Un cas d'usage bien connu est l'envoi d'un mail lors de la création d'un compte.

Voir la documentation

Transformation de pivot

Le pivot est la valeur qui relie une entrĂ©e en source avec une entrĂ©e en destination. Si ces deux entrĂ©es ont la mĂȘme valeur de pivot, alors LSC considĂšre que c'est la mĂȘme et applique les modifications. Sinon les entrĂ©es sont créées ou supprimĂ©es.

Cependant il arrive que la valeur soit un peu différente entre la source et la destination (majuscules, minuscules, préfixe, suffixe, 
), il faut donc transformer cette valeur dans un sens, puis dans l'autre.

Voir la documentation

Version de Java

LSC 2.1 était bloqué à la version 8 de Java, ce qui devenait problématique. LSC 2.2 est désormais compatible avec Java 21.

GraalVM

Les JavaScripts utilisĂ©s pour transformer les valeurs peuvent dĂ©sormais ĂȘtre exĂ©cutĂ© dans GraalVM, en utilisant le prĂ©fixe "gjs:"

Voir la documentation

Commentaires : voir le flux Atom ouvrir dans le navigateur

Gestion simple de tournois sportif PyTournois

Sportifs du dimanche, on a souvent besoin de gĂ©rer des tournois trĂšs simples du type « tout le monde rencontre tout le monde » avec quelques contraintes:

  • nombre de terrains limité ;
  • temps d’attente minimal entre deux matchs ;
  • rĂšgles variĂ©es sur la gestion des scores.

Depuis une vingtaine d’annĂ©es, je dĂ©veloppe diffĂ©rents sites en Python/Django. Du coup j’ai fabriquĂ© un dĂ©but de site :).

Code

Libriste depuis toujours, le code du projet est sous licence GPL. Actuellement trĂšs simple, le site permet de gĂ©rer uniquement le mode « toutes les Ă©quipes se rencontrent ». Plus tard, suivant les retours, les utilisations et mon temps libre, j’ajouterai d’autres modes (par exemple pour gĂ©rer des groupes de placements).

Pour Ă©viter les calculs inutiles, l’affectation des rencontres utilise des grilles de placement. Ces grilles sont calculĂ©es une fois pour toutes et contenues dans le projet. L’avantage est d’ĂȘtre efficace et rapide sur la gĂ©nĂ©ration de toutes les rencontres. L’inconvĂ©nient est que seules quelques combinaisons sont actuellement disponibles :)

Fonctionnement

Le fonctionnement est trĂšs simple, le principe de base est que toutes les informations sont visibles sans connexion. Il y a quatre grands rĂŽles utilisateurs:

  • administrateur: sert surtout pour crĂ©er des comptes utilisateurs ;
  • organisateur: peut crĂ©er des Ă©quipes et rĂ©initialiser un tournoi ;
  • arbitre: peut enregistrer/modifier les rĂ©sultats des matchs ;
  • anonyme: accĂšs Ă  la liste des matchs et au classement.

Les rĂšgles de classement sont affichĂ©es. On peut Ă©galement dĂ©finir un message d’accueil. Si on veut sauvegarder les rĂ©sultats d’un tournoi, il y a un export au format CSV.

Démonstration

Il y a Ă©videmment un site de dĂ©monstration du projet. Le lien se trouve ci-dessous. Les ressources nĂ©cessaires pour faire tourner le site sont extrĂȘmement limitĂ©es. Si les fonctionnalitĂ©s du site vous conviennent et que vous voulez l’utiliser pour un club/tournois, n’hĂ©sitez pas Ă  me contacter. Je pourrais mettre en ligne une version dĂ©diĂ©e gratuitement.

Commentaires : voir le flux Atom ouvrir dans le navigateur

yahi un agrégateur de statistiques dans l'esprit d'awstats

J’ai la nostalgie d’awstats : la possibilitĂ© de faire des statistiques web sans dĂ©ployer des tonnes d’infrastructure (genre Grafana).

Pour cela, j’ai codĂ© Yahi, un module Python qui agrĂšge dans sa forme basique les statistiques web en format usuel (nginx, apache, lighthttpd, varnish) pour les prĂ©senter dans une page web « tout en un Â».

Il se décompose pour sa partie utilitaire en deux scripts:
- un d'agrégation des statistique de journaux de serveurs webs dont l'écriture d'une version personnalisée ici celle que j'utilise pour faire des démos sans IP ou URLs est relativement simple;
- un de génération d'une page de visualisation HTML avec les données.

Certes cette page requiert du JavaScript pour fonctionner, mais elle requiert zĂ©ro dĂ©pendance vers des liens externes et inclut autant toutes les visualisations que les donnĂ©es dans une seule page (donnĂ©es, CSS, visualisations). Cela permet de l’avoir en marque-page grĂące Ă  quelques ruses de javascript, et cela rend son hĂ©bergement aisĂ© pour les sysadmins. (NdM: goaccess (MIT en C) sait faire aussi).

Son API permet en outre de faire des agrégations plus compliquées.

Et, je recherche des bétas testeurs pour en faire un produit fini.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Continuer de soutenir les associations du libre

Vous le savez sans doute déjà, un des moyen de soutenir les associations francophones du monde du Libre est de leur acheter leurs goodies ou de leur faire des dons.

L’association En Vente Libre a Ă©tĂ© créée en 2009 par des bĂ©nĂ©voles de Framasoft et Ubuntu-FR. En 2017, elle est reprise par une aprilienne, un debianiste et un ubunteros inconscients qui ne voulaient pas que la plate-forme disparaisse. Depuis EVL continue de mettre Ă  disposition des associations du logiciel libre un moyen de vendre leurs diffĂ©rents produits de maniĂšre mutualisĂ©e et de rĂ©cupĂ©rer des dons. Permettre la diffusion de la culture libre Ă  travers le monde est un peu prĂ©tentieux, mais c’est toujours l’objectif !

Les premiĂšres associations qui en ont bĂ©nĂ©ficiĂ© sont : Debian, Ubuntu-Fr, l’April, La Mouette, Framasoft, MultisystĂšme, EduNathon. Depuis 2017 se sont ajoutĂ©es : Mageia, Borsalinux, La Quadrature du Net, LinuxFr, Alionet, Khaganat, LIbre comme L’Art et La Contre-Voie. En 2023, FDN et Musique Libre ont rejoint le groupe.

=> Cette annĂ©e, c’est le tour de l’association Le deuxiĂšme texte dont l’objectif est de redonner leur place aux femmes de lettres dans le canon littĂ©raire enseignĂ© en France. Logo Le deuxiĂšme texte
Pour cela, elle contribue aux communs numĂ©riques en enrichissant, en mettant en valeur et en partageant des textes de femmes, notamment Ă  travers les wikis de la Wikimedia Foundation. Les contenus créés sont publiĂ©s dans des formats ouverts et sous des licences libres. Pour ses travaux, l’association utilise et fait connaĂźtre des outils libres et respectueux de la vie privĂ©e.

La force de la plate‐forme EVL est de proposer de faire des dons ou d’acheter des articles de plusieurs associations en mĂȘme temps. Cela permet une mutualisation des coĂ»ts bancaires et des frais divers (arrĂȘtons d’enrichir les banques !).

Vous pouvez donner à toutes les associations, acheter des T-shirts, mugs, autocollants, clés, badges sous-bock, autocollants, CD de musique ou encore casquettes.

Vous soutiendrez plusieurs associations en mĂȘme temps financiĂšrement en ne faisant qu’un seul virement.

Si vous :

  • appartenez Ă  une association et que vous voulez vendre vos produits ou obtenir des dons sur la plate‐forme EVL, n’hĂ©sitez pas Ă  demander notre convention par courriel Ă  bureau@enventelibre.org ;
  • voulez participer au projet et devenir bĂ©nĂ©voles, contactez‐nous par courriel Ă  association@enventelibre.org ;

Commentaires : voir le flux Atom ouvrir dans le navigateur

Proxmox Virtual Environment 8.4 est disponible

Proxmox Server Solutions GmbH a publiĂ© la version 8.4 de sa plate-forme de virtualisation libre Proxmox Virtual Environment (VE). Proxmox VE est sous licence GNU Affero GPLv3. Proxmox Server Solutions propose un support d’entreprise Ă  partir de 115 € par an et par processeur.

Principales nouveautés de la version 8.4

  • Migration Ă  chaud avec des dispositifs mĂ©diĂ©s :
    Les dispositifs mĂ©diĂ©s permettent de partitionner les ressources matĂ©rielles physiques en plusieurs dispositifs virtuels. Il est dĂ©sormais possible de migrer des machines virtuelles (VM) en cours d’exĂ©cution utilisant des dispositifs mĂ©diĂ©s, tels que les vGPU NVIDIA.

  • API pour les solutions de sauvegarde tierces :
    Proxmox VE propose une API qui simplifie le développement de plug-ins par les fournisseurs de solutions de sauvegarde externes. Ces solutions de sauvegarde tierces peuvent désormais implémenter directement des fonctionnalités de sauvegarde et de restauration dans Proxmox VE, tout en tirant parti de fonctionnalités avancées.

  • Passage direct de rĂ©pertoires via Virtiofs :
    La version 8.4 offre la possibilitĂ© de partager des fichiers et des rĂ©pertoires directement entre un hĂŽte et les machines virtuelles (VM) exĂ©cutĂ©es sur cet hĂŽte. Cette fonctionnalitĂ© est rendue possible par virtiofs, qui permet aux machines virtuelles d’accĂ©der aux fichiers et rĂ©pertoires de l’hĂŽte sans surcharger le systĂšme de fichiers rĂ©seau. Les systĂšmes invitĂ©s Linux modernes sont dotĂ©s de la prise en charge native de virtiofs, tandis que pour les invitĂ©s Windows, l'utilisation de cette fonctionnalitĂ© nĂ©cessite un logiciel supplĂ©mentaire.

  • Mises Ă  jour de tous les composants libres :
    Proxmox VE 8.4 est basĂ© sur Debian 12.10 (“Bookworm”), mais utilise par dĂ©faut le noyau Linux 6.8.12. Cette version de Proxmox VE inclut des mises Ă  jour vers les derniĂšres versions des principales technologies open source pour les environnements virtuels, telles que QEMU 9.2.0, LXC 6.0.0. La solution est livrĂ©e avec ZFS 2.2.7 et Ceph Squid 19.2.1.

D’autres amĂ©liorations incluent un mĂ©canisme de filtrage de sauvegarde plus robuste, des amĂ©liorations de la pile SDN (rĂ©seau dĂ©fini par logiciel), et de nouvelles options dans l’installateur ISO.

Commentaires : voir le flux Atom ouvrir dans le navigateur

❌
❌