Archives pour la catégorie Petits outils sympa

Lut.im, un service d’hé­ber­ge­ment d’images gratuit, libre et anonyme

Que celui qui n’a jamais voulu parta­ger simple­ment une capture d’écran lève le doigt. Personne ?

Logo de LUTIm

Le partage d’images nous confronte souvent à divers problèmes :

  • un email prend du temps (retrou­ver l’adresse du desti­na­taire, l’en­voi, etc.) ;
  • un email prend de la place. Ce n’est pas grand chose, mais pour une image jetable, c’est de l’es­pace disque perdu, que ce soit dans le dossier « Envoyé » de l’ex­pé­di­teur ou celui du desti­na­taire. Oui, on peut suppri­mer le mail, mais c’est encore une action à effec­tuer.
  • une solu­tion commme imgur nous ramène au sempi­ter­nel problème des Condi­tions Géné­rales d’Uti­li­sa­tion imbi­tables, pas traduites et qu’on ne lit de toute façon jamais en entier. Pour ce genre de service, on risque de four­nir certains droits à l’hé­ber­geur… et ça c’est pas cool !
  • un owncloud (ou équi­valent) fera bien le travail, au prix d’une certaine complexité de partage et de liens à la longueur ahuris­sante.

Pour répondre à cette problè­ma­tique, j’ai codé LUTIm (pronon­cez comme lutin). Écrit en Perl avec le frame­work Mojo­li­cious, utili­sant le Twit­ter Boots­trap, un sous ensemble de Font Awesome et un plugin jQuery légè­re­ment modi­fié pour la gestion du glis­ser/dépo­ser, LUTIm est un logi­ciel libre (licence AGPL) de partage d’image anonyme et gratuit.

Capture d'écran de l'interface de LUTIm

Le prin­cipe est simple : on glisse/dépose des images (ou via le sélec­teur de fichier clas­sique) et on récu­père 3 liens :

  • un lien vers l’image (utili­sable dans une balise img par exemple) ;
  • un lien de télé­char­ge­ment de l’image (pour éviter le Clic droit > Enre­gis­trer sous) ;
  • un lien vers une page qui affiche l’image et qui est utili­sable sur Twit­ter (l’image appa­raî­tra dans le tweet).

Des options du formu­laire d’en­voi permettent de suppri­mer auto­ma­tique­ment les images après la première consul­ta­tion ou après 24h.

Bien évidem­ment, pour des ques­tions légales, il n’est pas possible d’avoir un service tota­le­ment anonyme : les IPs des envoyeurs d’image et celles des consul­teurs sont enre­gis­trées dans les logs, mais c’est quelque chose de tout à fait habi­tuel sur tout site web. Les IPs des envoyeurs ainsi que celle du dernier consul­teur sont enre­gis­trées dans la base SQLite pour accé­le­rer la recherche d’in­for­ma­tions en cas de requète judi­ciaire (je sais comme il peut être fasti­dieux et long de cher­cher dans des logs).

Lors de la suppres­sion auto­ma­tique d’une image, le fichier est bel et bien supprimé, mais son entrée en base de données persiste et contient l’em­preinte SHA512 du fichier.

De par sa nature libre, vous pouvez bien évidem­ment instal­ler et utili­ser très faci­le­ment LUTIm sur votre propre serveur, mais vous pouvez aussi vous conten­ter d’uti­li­ser l’ins­tance offi­cielle : http://lut.im

LUTIm est dispo­nible en français et en anglais, la langue étant choi­sie selon les préfé­rences du navi­ga­teur. Toutes les bonnes volon­tés sont les bien­ve­nues pour propo­ser d’autres langues !

Enfin, LUTIm propose un plugin pour Shut­ter, logi­ciel de capture d’écran, pour permettre à celui-ci d’en­voyer les capture sur http://lut.im direc­te­ment (plugin à instal­ler soi-même, le site du projet ayant l’air cassé, je n’ai pu leur remon­ter le plugin).

Me soutenir sur Tipeee Me soutenir sur Liberapay

Admi­nis­trer Ether­pad à la console

Ether­pad est un super éditeur de texte colla­bo­ra­tif, pratique, bien fait, toussa.

Mais son admi­nis­tra­tion, bah c’est pas vrai­ment ça. De base, pas moyen de suppri­mer des pads, d’avoir quelques infor­ma­tions (qui sont les auteurs du pad par exemple, combien il y a de pads, etc.) simple­ment.

C’est normal (enfin, plus ou moins selon moi) car Ether­pad four­nit une bien belle API qui permet de faire cela. Mais pour le coup, il faut déve­lop­per le truc qui va bien.

J’avais déjà déve­loppé Ether­pad::Admin (ici et ) mais ce n’était pas très satis­fai­sant. En effet, n’im­porte qui peut faire n’im­porte quoi avec ce logi­ciel, et même si une simple authen­ti­fi­ca­tion apache suffit à résoudre ce problème, ce n’est pas très propre.

M’oc­cu­pant désor­mais de Frama­pad, j’avais besoin d’un outil qui me permet­trait de gérer plusieurs instances d’Ether­pad car nous avons splitté Frama­pad en plusieurs instances pour limi­ter la charge. Et j’ai aussi mon propre ether­pad à admi­nis­trer.

Je vous présente donc padconsole qui, comme son nom l’in­dique, s’uti­lise comme une console pour gérer ses diffé­rentes instances d’ether­pad. On peut l’uti­li­ser sans enre­gis­trer ses instances et les clés d’API qui vont avec, ou avec un fichier de confi­gu­ra­tion en YAML qui contien­dra tout ce qu’il faut et donc permet­tra de gérer plusieurs instances en même temps.

Il est possible de lancer padconsole avec les infor­ma­tions de l’ins­tance en argu­ments et ensuite de pous­ser ces infor­ma­tions dans le fichier de confi­gu­ra­tion par un simple writeconf.

Les capa­ci­tés de padconsole sont encore basiques mais s’étof­fe­ront au fur et à mesure du temps que je pour­rais y consa­crer.

Pour instal­ler padconsole, le mieux est encore d’uti­li­ser le CPAN1 :

cpan App::padconsole

Sinon :

git clone https://github.com/ldidry/padconsole
cd padconsole
perl Makefile.PL
make
make test
make install

Une image vaut mille mots, donc :

Screenshot de padconsole

La page de man de padconsole : https://metac­pan.org/pod/release/LDIDRY/padcon­sole-0.03/padcon­sole

Le dépôt github : https://github.com/ldidry/padcon­sole

1 Oui, c’est du Perl. Comme d’ha­bi­tude quoi. Vous vous atten­diez à quoi ? Du Ruby ? Ha ha, restons sérieux, voyons :D

Me soutenir sur Tipeee Me soutenir sur Liberapay