URL: https://linuxfr.org/news/lutim-0-2-le-retour Title: LUTIm 0.2 : le retour Authors: Framasky ZeroHeure, palm123 et bubarđŸŠ„ Date: 2014ćčŽ03月07æ—„T22:41:15+01:00 License: CC By-SA Tags: lutim, perl, mojolicious, nimage et mongodb Score: 30 18 jours aprĂšs la version 0.1 prĂ©sentĂ©e dans une [dĂ©pĂšche prĂ©cĂ©dente](https://linuxfr.org/news/lut-im-un-service-d-hebergement-d-images-gratuit-libre-et-anonyme), voici venir une nouvelle version de LUTIm ! ![Logo de LUTIm](https://lut.im/img/LUTIm_small.png) Pour rappel, LUTIm (Ă  prononcer comme _lutin_) est un service web d'hĂ©bergement d'images, gratuit, libre et anonyme. Il est Ă©crit en Perl, est utilisable avec ou sans JavaScript et possĂšde une API, permettant son usage depuis d'autres logiciels comme par exemple [Shutter](http://shutter-project.org/), un logiciel de capture d'Ă©cran (rappelons qu'une des principales raisons du dĂ©veloppement initial de LUTIm est le partage simple de captures d'Ă©cran). Les ~~trolls~~ discussions ont Ă©tĂ© Ăąpres sur certains aspects de LUTIm mais fort enrichissantes, aidant LUTIm Ă  Ă©voluer pour le meilleur (tout du moins, je l'espĂšre). Les changements ont Ă©tĂ© nombreux, comme en tĂ©moigne le [Changelog](https://github.com/ldidry/lutim/blob/master/Changes) mais les deux principaux changements, vraiment visibles de tout un chacun sont la possibilitĂ© de chiffrer les images et les miniatures des images dans la rĂ©ponse. L'instance officielle, , bĂ©nĂ©ficie bien Ă©videmment des derniers dĂ©veloppements, Ă©ventuellement avant les releases officielles quand il s'agit de bugs graves. ---- [Instance officielle de LUTIm](https://lut.im) [Page github du projet](https://github.com/ldidry/lutim) [Liste des changements](https://github.com/ldidry/lutim/blob/master/Changes) [Shutter](http://shutter-project.org/) [La page de statistiques de l'instance officielle de LUTIm](https://lut.im/stats) ---- Les nouveautĂ©s ============== Chiffrement ----------- Pour avoir un service d'hĂ©bergement d'images garantissant la vie privĂ©e, outre la question des logs, il y a la question de qui peut voir ce que l'on a dĂ©posĂ© et bien souvent les administrateurs des services le peuvent (_All your base are belong to us_ comme dit le dicton). C'est pourquoi LUTIm propose dĂ©sormais la possibilitĂ© de chiffrer ses images (l'administrateur peut forcer l'usage systĂšmatique du chiffrement). À propos du chiffrement, deux Ă©coles s'opposent : le chiffrement cĂŽtĂ© serveur ou cĂŽtĂ© client. Chacune d'entre elles possĂšde des avantages et inconvĂ©nients dont voici les principaux : * cĂŽtĂ© client, le JavaScript est obligatoire, mais le serveur ne peut pas connaĂźtre la clĂ© ; * cĂŽtĂ© serveur, il faut faire confiance au serveur pour ne pas stocker la clĂ©, mais l'interface peut se passer de JavaScript. LUTIm utilise un chiffrement cĂŽtĂ© serveur pour plusieurs raisons : * LUTIm est codĂ© de façon Ă  ĂȘtre utilisable mĂȘme sans JavaScript. Cela n'a pas toujours Ă©tĂ© simple, mais c'est un point essentiel de ce logiciel, donc renoncer Ă  cette fonctionnalitĂ© Ă©tait exclu ; * les images dĂ©posĂ©es sur LUTIm sont utilisables directement : vous pouvez dĂ©poser des images sur LUTIm et les inclure sur LinuxFR comme c'est le cas dans cette dĂ©pĂšche. Un chiffrement JavaScript aurait empĂȘchĂ© une telle utilisation ; * Le dĂ©veloppeur principal (moi :p) prĂ©fĂšre de loin le Perl au JavaScript. L'algorithme de chiffrement est [[Blowfish]] et les clĂ©s sont gĂ©nĂ©rĂ©es alĂ©atoirement par le serveur. Les clĂ©s font 8 caractĂšres de long et les caractĂšres sont choisis dans [a-zA-Z0-9], ce qui reprĂ©sente 2 821 109 907 456 combinaisons possibles. La longueur de la clĂ© sera paramĂštrable (par l'admin) dans un futur proche. La clĂ© n'est bien Ă©videmment jamais stockĂ©e sur le serveur, de mĂȘme que l'image non chiffrĂ©e. Elles ne font que transiter en mĂ©moire le temps du chiffrement pour l'image et jusqu'Ă  l'affichage de la rĂ©ponse pour la clĂ©. L'instance officielle chiffre dĂ©sormais systĂ©matiquement toutes les images (les anciennes images non chiffrĂ©es Ă©tant toujours accessibles). Et si vous avez toujours peur d'un serveur malveillant, installez votre propre instance, c'est si simple :) Miniatures ---------- Un des reproches gentiment fait Ă  LUTIm Ă©tait qu'il Ă©tait difficile de savoir Ă  quelle image correspondait telle URL lors de l'envoi simultanĂ© de plusieurs images. Si le module Perl Image::Magick est installĂ©, une miniature de l'image est gĂ©nĂ©rĂ©e (avant un Ă©ventuel chiffrement) et renvoyĂ©e encodĂ©e en base64, prĂȘte Ă  ĂȘtre utilisĂ©e en tant que source dans une balise img. L'absence d'Image::Magick ne pose aucun problĂšme Ă  LUTIm qui fonctionnera normalement, juste sans les miniatures. ![La nouvelle interface de LUTIm](https://lut.im/NiM4xaLZ\/AwZS0EeJ) L'encodage en base64 permet de ne pas garder la miniature sur disque pour garantir la confidentialitĂ© de l'image (si l'image est chiffrĂ©e et pas la miniature, quel intĂ©rĂȘt ?) ainsi que pour Ă©viter l'encombrement de l'espace disque. La crĂ©ation de la miniature et son encodage en base64 ne nĂ©cessitent Ă  aucun moment d'enregistrer l'image dans un fichier. Statistiques ------------ Stocker les images des autres est fort gentil, mais il est bon de garder un Ɠil sur l'Ă©volution du service. Aussi une page de statistiques a fait son apparition. Si elle ne fournit pas la taille du rĂ©pertoire des fichiers, elle permet toutefois d'apprĂ©hender d'un coup d'Ɠil le nombre total d'images dĂ©posĂ©es, le nombre d'images dĂ©posĂ©es par jour et l'Ă©volution du nombre total d'images. La pĂ©riode de statistiques est paramĂštrable par l'administrateur et il faut mettre en place une tĂąche _cron_ pour gĂ©nĂ©rer les statistiques. Si le JavaScript n'est pas activĂ©, l'utilisateur verra apparaĂźtre un tableau des donnĂ©es utilisĂ©es pour la gĂ©nĂ©ration des graphiques. Les graphiques sont gĂ©nĂ©rĂ©es avec le plugin jquery [SimpleGraph](http://benaskins.github.io/simplegraph/) et la bibliothĂšque [Raphael](http://raphaeljs.com/) mais d'autres modules sont actuellement Ă  l'Ă©tude. Vous pouvez [voir les graphiques de l'instance officielle](https://lut.im/stats). TĂąches _cron_ ------------- Outre la gĂ©nĂ©ration des statistiques, d'autres actions peuvent ĂȘtre activĂ©es via _cron_ : * suppression des IPs des envoyeurs dans la base de donnĂ©es aprĂšs un dĂ©lai paramĂštrable ; * suppression des images expirĂ©es (les images Ă©taient auparavant supprimĂ©es lors d'une tentative d'accĂšs) ; * surveillance de la taille du rĂ©pertoire des images avec 3 actions possibles si la taille maximale configurĂ©e est dĂ©passĂ©e : * Ă©mission d'un message sur la sortie standard (_cron_ enverra ce message par mail) ; * crĂ©ation d'un fichier bloquant tout nouvel envoi d'images (avec avertissement aux utilisateurs. Le fichier est supprimĂ© si on repasse sous la limite lors de l'exĂ©cution de la tĂąche) et Ă©mission d'un message ; * suppression des images les plus anciennes par paquet de 50 jusqu'Ă  avoir une taille de rĂ©pertoire en dessous de la limite et Ă©mission d'un message (non recommandĂ©) ; Autres ajouts ------------- Un peu en vrac, voici d'autres nouvelles fonctionnalitĂ©s : * possibilitĂ© de diffuser un message sur les pages d'accueil, d'informations et de statistiques ; * possibilitĂ© de bloquer manuellement l'envoi d'images en crĂ©ant un fichier spĂ©cifique Ă  la racine du rĂ©pertoire de LUTIm (ce n'est pas le mĂȘme fichier que celui posĂ© par la tĂąche _cron_ de surveillance du dossier d'images) ; * meilleure dĂ©tection des types MIME ; * barre de progression des envois d'images ; * autorisation de requĂȘtes cross-domain (la liste des domaines autorisĂ©s est configurable ou dĂ©sactivable) ; * documentation de l'API (celle-ci doit encore ĂȘtre mise Ă  jour, mais l'essentiel est dĂ©crit) ; * Ajout d'en-tĂȘtes HTTP pour les images en cohĂ©rence avec leur durĂ©e de vie ; * possibilitĂ© d'envoi d'images en donnant leur URL. L'image est alors tĂ©lĂ©chargĂ©e sur le serveur. Le futur ======== Si LUTIm est jeune, il n'en a pas moins dĂ©jĂ  dĂ©montrĂ© sa robustesse face Ă  l'effet Korben (le pic de plus de 2 000 images envoyĂ©es sur la page des statistiques) et les retours sont encourageants, que ce soit par les utilisateurs, par les administrateurs dĂ©sireux d'installer leur propre instance, ou par la communautĂ© Perl francophone (coucou les Mongueurs) voire anglophone (via la liste de diffusion du framework Mojolicious). Le dĂ©veloppement de LUTIm ne s'arrĂȘtera donc pas lĂ . Des demandes de fonctionnalitĂ©s sont toujours en attente sur [github](https://github.com/ldidry/lutim/issues) et il ne tient qu'Ă  vous d'en ajouter d'autres ! Entre autres choses, la prioritĂ© de la version 0.3 sera l'Ă©criture de tests (non, il n'y a pas encore de suite de tests, et c'est mal, je sais) ainsi que l'ajout de la possibilitĂ© d'utiliser une base MongoDB plutĂŽt que SQLite (ça sera une possibilitĂ©, pas une obligation, SQLite sera toujours supportĂ©). Divers ====== L'instance officielle est disponible en connexion sĂ©curisĂ©e, avec un vrai certificat, permettant d'embarquer les images provenant de LUTIm sans soulever le problĂšme de [Mixed Content](https://developer.mozilla.org/en-US/docs/Security/MixedContent). LUTIm est disponible en français et en anglais. Le choix de la langue est fait par les prĂ©fĂ©rences de langue du navigateur (en-tĂȘte HTTP Accept-Language). Si vous voulez proposer une nouvelle langue, toutes les contributions sont les bienvenues ! Voir [ici](https://github.com/ldidry/lutim/tree/master/lib/Lutim/I18N) pour les fichiers de langue. La concurrence est lĂ  (, libre et Ă©crit en node.js.) mais un LUTIm sait se montrer courageux et rĂ©sister Ă  l'adversitĂ© ! Maintenant que le chiffrement est de la partie, le petit frĂšre de LUTIm, Lufi pourrait faire son apparition relativement vite. Lufi sera un service d'hĂ©bergement de fichiers basĂ© sur ±90% du code de LUTIm. Vous pouvez soutenir LUTIm avec [flattr](https://flattr.com/submit/auto?user_id=_SKy_&url=http://lut.im/&title=LUTIm&category=software), bitcoin (1K3n4MXNRSMHk28oTfXEvDunWFthePvd8v) ou encore dogecoin (DFDpahcHFBf2rGMGe49H7m3USw6JMhmwGo). Vous pouvez aussi simplement parler de LUTIm autour de vous et utiliser le _hashtag_ #Lutim lorsque vous en parlez sur les rĂ©seaux (a)sociaux.

AltStyle ă«ă‚ˆăŁăŠć€‰æ›ă•ă‚ŒăŸăƒšăƒŒă‚ž (->ă‚ȘăƒȘă‚žăƒŠăƒ«) /