Journal Renaissance de Jyraphe

Posté par . Licence CC by-sa
33
28
fév.
2014

Salut à tous!

Certains d'entre vous se rappellent peut-être de Jyraphe, un logiciel de partage de fichier sur le web très simple et conçu sur le principe KISS qui avait plusieurs fois été annoncé sur linuxfr.

J'en avais été contributeur à l'époque, et après quelques temps, l'effort de développement était retombé. La dernière version maintenant ancienne continuait à rendre de bons services sur nos serveurs, tandis que son code vieillissait et ses fonctionnalités se démodaient (surtout le système d'upload de fichiers).

Après ces années d'utilisation, il était apparent que le logiciel pouvait être encore plus simplifié. L'utilisation des fonctions avancées comme les réglages de limite de temps et le mot de passe sont très rarement utilisés, même en entreprise (où Jyraphe est d'habitude uniquement accessible en intranet).

Le code du projet (en PHP) est aussi écrit dans un style ancien et assez difficilement maintenable. J'ai donc décidé de lui donner un coup de jeune et de le ré-écrire entièrement. Vous pouvez trouver la nouvelle version sur son dépot Gitorious, accompagné des instructions pour une installation rapide. Cette version s'appuie sur un micro-framework pour PHP, ainsi que SQLite pour la base de donnée. Le tout rendant la taille du code à maintenir beaucoup plus faible, et donc plus facile à gérer.

Les fonctionnalités disponibles sont les suivantes:

  • Upload de fichiers classiques
  • Upload de fichiers par glisser/déposer
  • Les fichiers sont disponibles pour 1 semaine maximum
  • Visualisation des fichiers de type image directement dans le navigateur

Un logiciel donc toujours très KISS. Les améliorations prévues pour la prochaine version sont:

  • Un indicateur de progression de l'upload
  • Un aperçu du fichier uploadé une fois le transfert terminé (une icone ou une petite version de l'image)
  • Fichier de configuration, notemment pour régler la durée de vie des fichiers
  • Script pour nettoyer les vieux fichiers (déclenché via Cron)

Liens:
* Page du projet
* Documentation et installation
* Téléchargement

  • # Démo

    Posté par . Évalué à 7.

    Pour celles et ceux qui voudraient tester, j'ai fait une installation publiquement utilisable ici:

    http://jyraphe.etenil.net

    • [^] # Re: Démo

      Posté par . Évalué à 2.

      et donc, au niveau des réglages de limite de temps et le mot de passe, tu comptes faire quoi ?

      autant je trouve vraiment très intéressant ce projet (pratique à déployer) autant ce genre de fonction manque :)

      • [^] # Re: Démo

        Posté par (page perso) . Évalué à 2.

        Par exemple, s'il y avait un moyen pour supprimer le document, via l'url.

        Ainsi, une fois que le destinataire à reçu le fichier, il peut utiliser l'url fournie dans l'e-mail pour effacer le fichier.

        • [^] # Re: Démo

          Posté par (page perso) . Évalué à 3.

          Ou alors une possibilité pour l'uploader de rendre son upload « auto-destrictible », le fichier s'efface après le 1er (ou Nème) téléchargement (à la manière de l'option « burn after reading » du Zerobin de Sebsauvage)

          De ses yeux vastes comme des océans, encroûtés de chassie et de poussière d'astéroïdes, Elle fixe le But Ultime.

      • [^] # Re: Démo

        Posté par . Évalué à 2.

        Je n'ai pas de plan concernant ces fonctions avancées pour le moment.

        J'en ai constaté un usage relativement faible et préfère me concentrer sur les fonctionnalités de base du logiciel pour le moment (non je ne suis pas un développeur de Gnome).

        Si ça t'es vraiment nécessaire, le vénérable Jyraphe d'origine est toujours utilisable, ou sinon un autre fork appelé Jyrafeau.

        • [^] # Re: Démo

          Posté par (page perso) . Évalué à 5.

          je ne suis pas un développeur de Gnome

          Tu es un développeur PHP, ce n'est pas tellement mieux. :-P

      • [^] # Re: Démo

        Posté par . Évalué à 3.

        A l'inverse je suis contre ce genre de fonctionnalités.
        Jyraphe doit rester simple et basique.
        C'est la solution idéale pour moi car c'est simple à installer, il n'y a pas de bases de données, et c'est simple à utiliser.

  • # Jirafeau

    Posté par . Évalué à 3.

    Comme Jyraphe était décédé, quelqu'un l'a forké (ici).
    Ce fork a l'air d'avoir plus de fonctionnalités (par exemple le choix dans la date d'expiration). Est-ce qu'un merge est prévu ?

    • [^] # Re: Jirafeau

      Posté par . Évalué à 2.

      Pas du tout, le code de jirafeau est très différent, tout comme les buts du projet.

      • [^] # Re: Jirafeau

        Posté par . Évalué à 5.

        Pas du tout, le code de jirafeau est très différent, tout comme les buts du projet.

        Et pourtant

        As it’s original project, Jirafeau is made in the KISS way (Keep It Simple, Stupid).

        Tu peux expliciter les différences ?

        Les améliorations prévues pour la prochaine version sont:

        • Un indicateur de progression de l'upload

        C'est fait dans Jirafeau.

        • [^] # Re: Jirafeau

          Posté par . Évalué à 5.

          Le code de base n'a aucun point commun. Jyrafeau et ma version de Jyraphe sont tous deux des projets originaux qui n'ont pour unique lien que leur but, et le langage dans lequel ils sont écrits. Ma version repose sur un micro-framework que Jyrafeau n'exploite pas par exemple.

          Le but des deux forks est également différent. Ma version est faite pour servir le cas d'usage le plus courant que j'ai constaté depuis que j'ai commencé à travailler sur jyraphe (premier du nom): le partage ponctuel d'images entre amis et parfois (plus rarement), d'autres fichiers.

          Jyrafeau met également plus l'accent sur la sécurité et l'absence de dépendances. Quant à moi, j'ai décidé de dépendre d'un framework et de SQLite pour gérer les liens. Globalement, Jyrafeau est certainement adapté à son audience, mais il contient beaucoup trop de fonctionalités pour le cas d'utilisation que je vise, et ne correspond pas du tout à ma vision.

          Enfin, Jyrafeau supporte beaucoup plus de choses que ma version de Jyraphe. Mais ce n'est pas une compétition et ma roadmap contient des améliorations sur la version existante, pas d'autres forks.

  • # La jyraphe et ses enfants

    Posté par . Évalué à 7. Dernière modification le 28/02/14 à 10:12.

    Félicitations au repreneur, même si je suis attaché aux fonctions de gestion de la durée de présence du fichier sur le serveur.

    Intéressé par l'installation d'un tel outil dans ma boîte, j'ai cherché à tirer au clair quelle version ou quel fork je devrais utiliser. J'ai posé la question sur la liste de discussion de Jyraphe.

    En effet, un logiciel qui n'évolue pas ne signifie pas qu'il est mort, peut-être juste qu'il est complet, mais dans la mesure où il s'exécute en serveur, c'est rassurant de savoir qu'il est utilisé, qu'une communauté peut réagir si on découvre une faille.

    Alors dans la famille Jyraphe,

    • On trouve sur Github une version 7 qui ne se présente pas comme un fork mais bien comme la suite de Jyraphe.

    • Coquelicot, très orienté sécurité/confidentialité (au sens ou l'admin n'a pas connaissance des contenus échangés)

    • Zirafe Je cite l'auteur : "peu de changements majeurs par rapport à Jyraphe. C'est testable ici : http://42.meup.org. Le changement majeur concerne les différents liens possibles pour un fichier, plus ou moins cours et comportant l'extension du fichier. Toutefois, zirafe n'est que très peu documenté (par exemple : il y a un exemple de configuration uniquement pour nginx) et je souhaite effectué un travail de refactorisation avant d'exposer un peu plus le projet. Dans tous les cas, je compte m'y remettre un peu plus activement sous peu."

    • Jirafeau Un utilisateur dit qu'il "l'utilise en production depuis 8 mois". Quelques nouvelles fonctionnalités.

    Pour l'instant on a rien mis dans ma boîte (donc on continuera d'avoir des demandes quand la pièce jointe de 30 Mo passe pas et dl.free.fr marche pas), mais je pense que je partirais sur Jirafeau.

    • [^] # Re: La jyraphe et ses enfants

      Posté par . Évalué à 2.

      C'est intéressant. Peux tu nous décrire ton cahier des charges? Ça pourrait aider pour focaliser l'effort de développement.

      • [^] # Re: La jyraphe et ses enfants

        Posté par . Évalué à 2.

        Le cahier des charges est très flou, c'est pour ça qu'on fait rien…

        On a des gros fichiers à envoyer et des gens qui se débrouillent par courriel ou parfois dl.free.fr, ce qui me file des boutons et donc j'envisage une alternative et je pense à Jyraphe.

        Je me dis que c'est simple et que j'ai qu'à installer une instance de Jyraphe. Pas si simple en fait puisque notre admin sys est sous-traitée, mais pourquoi pas. En plus c'est des serveurs Windows, j'ai pas trop envie d'y toucher. Pour info, la boîte fait moins de 50 personnes sur deux sites. Serveurs dupliqués avec synchro régulière.

        On a aussi des projets en collaboration avec l'extérieur, et puisqu'on réfléchit à ça, c'est l'occasion de se demander si on pourrait pas mettre quelque chose de beaucoup plus balèze, avec des répertoires de partage, gestion des droits déléguée au chef de projet, pourquoi pas listes de discussion, site web de projet et café. Rien à voir, donc.

        J'ai donc regardé aussi du côté des solutions (très) lourdes. J'ai noté les noms suivants : Nuxeo, Ovidentia, Alfresco, Jahia. Et j'en suis resté là. Je pense que c'est pas demain qu'on installera un truc comme ça.

        Donc on pourrait laisser ça de côté et au moins mettre un petit truc à la Jyraphe. Mais ne serait-ce que ça, c'est déjà ajouter un peu de "maintenance", alors que le problème ne se pose pas si souvent et ne gêne pas tant que ça les utilisateurs (qui trouvent que dl.free.fr ça marche bien et sinon pourquoi pas dropbox).

        J'ai noté OwnCloud, aussi, mais pas pris le temps de regarder.

        Si on reste sur le truc simple, le risque que je vois c'est que les fichiers ne soient jamais effacés et qu'on doive faire le ménage à la main. Donc je suis attaché à une fonction de limite de temps, éventuellement réglable par l'utilisateur mais avec un max. Et une possibilité de supprimer avant (ça, ça existe sans doute déjà), et pourquoi pas de prolonger la présence du fichier suite à alerte courriel ("votre fichier va être effacé dans 15 jours").

        • [^] # Re: La jyraphe et ses enfants

          Posté par (page perso) . Évalué à 3.

          J'ai mis en place jyraphe il y a quelques années, cela tourne tout seul. Il vieillit ici ou la (taille limite à l'upload, pas de barre de progression de l'upload). A mon avis, c'est très simple donc complémentaire de tout le reste.

          J'ai juste rajouter un champ 'service access password' que je change tous les mois. Il y a sur l'intranet le mot du mois en cours et le mot du mois suivant. C'est un mot de passe 'simple' ou avec un click permet de le sélectionner (ainsi le coupier coller pour les VRAI unixiens est très simple). Ce mot est diffusable à l'extérieur sans modération. Ainsi, on a résolu le problème des collaborateurs ou chez eux, tout est verrouillé.

          Vu notre connexion internet, je ne voulais pas d'un service ouvert à tout le monde, juste utilisable par tout le monde qui a un contact chez nous.

    • [^] # Re: La jyraphe et ses enfants

      Posté par . Évalué à 2.

      Jirafeau Un utilisateur dit qu'il "l'utilise en production depuis 8 mois". Quelques nouvelles fonctionnalités.

      Je l'utilise. En gros, c'est comme Jirafe (j'ai utilisé depuis ses débuts) le html5 en plus : plus de limite de taille de fichier si le navigateur supporte le html5. Je n'ai pas testé pour IEx mais il me semble qu'il a la limite qui dépend du serveur, comme ce qui existait dans Jirafe.
      Il y a aussi une interface d'admin dont la principale utilité, pour moi, est de nettoyer les fichiers stockés.

      Le xhtml est envoyé en xhtml+application, ça sent le développeur un peu maniaque. ;) Ça manque légèrement de finition, il faudrait éventuellement proposer un htaccess par défaut et des url plus propres. Je dois être maniaque moi aussi. ;)

      Jirafe et Jirafeau sont des projets simples et efficaces. C'est utilisable par un béotien de l'informatique. Ça répond au besoin.

  • # :)

    Posté par . Évalué à 10.

    Étant le premier développeur de Jyraphe, je suis très content de voir Jyraphe voler de ses propres ailes (même si une jyraphe n'a pas d'aile). C'est vrai que j'ai délaissé ce projet depuis bien longtemps, par manque de temps et surtout manque d'intérêt. Il y a eu quelques pics d'activités sporadiques sur la mailing-list ces dernières années mais je n'avais plus l'envie pour m'y investir autant qu'il aurait fallu. Et donc, la conséquence naturelle, c'est que pas mal de forks sont apparus. Ce qui est très bien !

    Après, mon souhait serait de fermer définitivement le projet sur GNA (virtuellement), puisqu'il est évident qu'il ne reprendra plus et que les forks apportent tout ce qu'il faut. Et j'aimerais aussi pouvoir rediriger les personnes intéressées et qui arrivent sur la page GNA vers les bons forks, puisque, comme je le comprends, chacun de ces forks n'a pas les mêmes objectifs d'évolution. Est-ce que ceux qui trainent par ici et qui sont impliqués dans ces forks sont d'accord pour ça et aussi, est-ce que la description de jihele un peu plus haut dans les commentaires pourraient convenir ?

    • [^] # Re: :)

      Posté par . Évalué à 3.

      Bonne initiative. Au passage, ça clarifiera la situation du fork qui se présente comme une version 7 alors que c'est plutôt un fork en développement. Ça n'aide pas à s'y retrouver.

    • [^] # Re: :)

      Posté par . Évalué à 4.

      Ça me dérange pas que tu fasse une liste des projets issus de Jyraphe, par contre tu devrais toujours laisser l'accès au code, le projet est toujours parfaitement utilisable et très utile.

  • # deux trucs que je n'ai pas compris...

    Posté par (page perso) . Évalué à 1.

    cette version permet-elle un upgrade depuis le jyraphe historique ? et y a t'il la possibilité de conserver les fichiers indéfiniment ?

    \Ö<

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.