Zerobin (écrit également 0bin) est un logiciel libre (licence WTF) développé en Python et qui n'utilise pas de base de donnée. Voilà la description que font les développeurs du projet :
“0bin permet à tout à chacun d’héberger un pastebin tout en acceptant que n'importe quel type de contenu y soit posté. L'idée est qu'une personne ne peut (probablement…) pas être tenue de modérer le contenu du pastebin si elle n'a aucun moyen de le déchiffrer.
C'est une implémentation en Python du projet zerobin, facile à installer même si on ne connaît pas ce langage.”
Nous vous recommandons la lecture de cette page pour plus d'informations :
https://github.com/sametmax/0bin/blob/master/docs/fr/intro.rst
Dans un premier temps, nous créons l'instance via le cli : http://cli.gandi.net
$ gandi paas create --name zerobin --type pythonmongodb password: Repeat for confirmation: Creating your PaaS instance.
Puis nous clonons le dépôt en local, ce qui aura pour effet de créer un répertoire default
, dans lequel nous devrons placer notre application :
$ gandi paas clone zerobin
On se rend ensuite dans le répertoire default
afin de créer les fichiers nécessaires au fonctionnement de l'application :
$ cd default $ touch requirements.txt $ touch wsgi.py
Nous allons ensuite ajouter la dépendance à zerobin dans le fichier 'requirements.txt' :
$ echo "zerobin" > requirements.txt
Nous allons maintenant télécharger le contenu de zerobin qui se trouve sur le dépôt officiel Github :
$ git clone https://github.com/sametmax/0bin.git
Puis déplaçons l'applicatif uniquement (qui est une application Django) à la racine du répertoire default
:
$ cp -r 0bin/zerobin .
Nous ajoutons un fichier .gitignore
afin d'ajouter le répertoire '0bin' qui contient tout le projet, dans notre cas nous ne pousserons que l'application sur l'instance.
echo 0bin > .gitignore
Vous devriez maintenant avoir cette structure :
$ tree -La 2 . ├── 0bin │ ├── compress.sh │ ├── docs │ ├── .editorconfig │ ├── .git │ ├── .gitignore │ ├── libs │ ├── README.rst │ ├── screenshot.png │ ├── setup.py │ ├── tools │ └── zerobin.py ├── .gandi.config.yaml ├── .git │ ├── branches │ ├── COMMIT_EDITMSG │ ├── config │ ├── description │ ├── FETCH_HEAD │ ├── HEAD │ ├── hooks │ ├── index │ ├── info │ ├── logs │ ├── objects │ └── refs ├── .gitignore ├── requirements.txt ├── wsgi.py └── zerobin ├── default_settings.py ├── __init__.py ├── paste.py ├── privilege.py ├── routes.py ├── static ├── utils.py └── views
Les fichiers statiques (images, fichiers CSS et javascripts) doivent être placées à la racine sur une instance Python, dans notre cas, l'application dispose déjà d'un répertoire où se trouvent les fichiers statiques, dans zerobin/static
. Nous allons donc créer un simple lien symbolique vers ce répertoire afin de simplifier les mises à jours futures :
$ ln -s zerobin/static static
Apache est utilisé avec le mod_wsgi afin de servir les pages. Nous allons donc remplir le fichier wsgi.py
en suivant la documentation de l'application :
$ nano wsgi.py
import os, sys # make sure the zerobin module is in the PYTHON PATH and importable ZEROBIN_PARENT_DIR = os.path.dirname(os.path.dirname(__file__)) sys.path.insert(0, ZEROBIN_PARENT_DIR) # create the wsgi callable from zerobin.routes import get_app settings, application = get_app(compressed_static=True)
Il nous suffit désormais de pousser l'application via git et de la déployer :
$ git add . $ git commit -am 'First install of Zerobin' $ git push origin master $ gandi deploy
Une fois ceci effectué, votre application devrait être disponible à l'adresse que vous avez déclaré sur l'instance.