====== Installer zerobin sur une instance Simple Hosting Python ====== ===== Introduction ===== 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 ===== Étape 1 - Création de l'instance ===== Dans un premier temps, nous créons l'instance via le cli : http://cli.gandi.net Zerobin n'utilise pas de base de donnée, ainsi vous pouvez choisir une instance Python avec la base de donnée de votre choix, celle-ci ne sera pas utilisée. $ gandi paas create --name zerobin --type pythonmongodb password: Repeat for confirmation: Creating your PaaS instance. ===== Étape 2 - Mise en place de l'applicatif ===== 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 ===== Étape 3 - Écriture du fichier wsgi.py ===== Apache est utilisé avec le mod_wsgi afin de servir les pages. Nous allons donc remplir le fichier ''wsgi.py'' en suivant [[ https://0bin.readthedocs.org/en/latest/en/apache_install.html | 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) ===== Étape 5 - Déployez l'application sur l'instance ===== 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.