Remarque : Ce projet a été remplacé par un port de Golang:
Il s'agit d'un service simple de type pastebin qui permet à un utilisateur de soumettre du texte qui est formaté dans Markdown, et de partager le HTML résultant.
Un utilisateur télécharge Markdown et le HTML rendu et la marque d'origine sont disponibles.
L'utilisateur sera en mesure de supprimer le contenu post-téléchargement, s'il le souhaite.
Le service utilise Redis pour la persistance, mais je suis ouvert à l'idée d'utiliser le système de fichiers à la place s'il y a une préférence.
En plus d'avoir à écouter redis sur localhost, vous aurez besoin des modules Perl suivants:
:emojis: supportLes installer sur un hôte Debian GNU / Linux devrait être aussi simple que:
$ apt-get install libossp-uuid-perl libjson-perl libhtml-template-perl
libmath-base36-perl libredis-perl libtext-multimarkdown-perl
perl perl-modules libcgi-application-perl libcgi-session-perl
libhtml-parser-perl
Dans le passé, nous avons utilisé un seul entier incréments pour stocker toutes les soumissions, qui a été codée en base36 pour la concision.
Nous sommes maintenant passés à l'utilisation des UUID, ce qui signifie que les URL sont plus longues, mais qu'il n'est pas possible pour un attaquant distant de arder la liste complète des documents téléchargés.
Il aurait été possible de mélanger les deux schémas indéfiniment, et de permettre à l'utilisateur de choisir entre "normal" et "sécurisé", mais je préfère supprimer une case à cocher / ComboBox et garder l'interface simple.
Le déploiement doit être assez simple si vous connaissez l'exécution des applications CGI basées sur Perl.
Il existe un exemple de fichier Virtual-Host Apache2 fourni, qui documente les réécritures qui sont nécessaires pour faire fonctionner l'application avec des URL propres.
De plus, il y a un dockerfile fourni, qui vous permet de construire facilement un conteneur avec une copie du code de projet à l'intérieur. Ce conteneur peut ensuite être lancé pour vous donner une instance locale de l'application dans un environnement isolé.
Il existe un conteneur pré-construit disponible à partir de l'indice Docker: