Installation de LodgeIt! depuis les sources

LodgeIt!

Introduction

LodgeIt! est une application web alternative à Pastebin que vous pouvez utiliser soit depuis le site officiel soit en hébergeant vous même l’application sur votre serveur. C’est d’ailleurs ce dernier point qui nous intéresse ici, nous allons voir comment l’installer sur une machine Debian.

Le tutoriel a été testé sur une machine de type Debian Squeeze, cependant l’installation sur une Ubuntu devrait être équivalente.

LodgeIt requiert une version de Python supérieure ou équivalente à la 2.5 pour fonctionner correctement.

Ici j’utiliserai l’éditeur de texte nano, mais libre à vous d’utiliser votre éditeur de texte préféré.

Installation des dépendances

Les dépendances qui vont être installées sont relatives à Pyrthon (minimum 2.5),python-setuptools qui permet de résoudre les dépendances Python dont aura besoin le projet et Mercurial pour récupérer depuis les repository le projet :

# aptitude install python-dev python-setuptools python-imaging python-virtualenv mercurial build-essentials

Sources

Maintenant que les dépendances sont satisfaites, LodgeIt! est prêt à être installé. Mais d’abord, nous avons besoin de récupérer les sources du projet sur le dépôt Mercurial. Pour se faire, nous allons procéder comme ceci :

  • Placez-vous dans le répertoire voulu pour héberger le projet :

# cd /chemin/projet/

  • Créer un répertoire lodgeit-dev par exemple :

# mkdir lodgeit-dev

  • Puis récupérer les sources sur le repository:

# hg clone http://dev.pocoo.org/hg/lodgeit-main lodgeit

Compilation

Juste avant de pouvoir démarrer l’environnement virtuel, nous avons besoin de compiler et de satisfaire les dépendances de la librairie python imaging :

# apt-get build-dep python-imaging

Maintenant, nous pouvons installer l’environnement virtuel nécessaire à l’application :

Assurez-vous de bien vous trouvez dans /chemin/projet/lodgeit-dev/lodgeit/

# python scripts/make-bootstrap.py > ../bootstrap.py
# cd ..

Prenez soin de travailler dans un environnement virtuel désactivé. Sinon, exécutez la commande suivante :

(envirvirtuel)user@machine:/chemin/projet/lodgeit-dev/lodgeit# deactivate

En effet, vous pouvez remarquer que vous êtes en environnement virtuel avec le nom de l’environnement mis entre parenthèse devant la CLI.

# python bootstrap.py .

N’oubliez pas le . à la fin de la commande indiquant le répertoire courant.
Nous sommes désormais prêts à lancer l’application.

Lancement

Tout d’abord lancer l’environnement, toujours depuis /chemin/projet/lodgeit-dev/lodgeit/:

# . ../bin/activate

Puis enfin lancez le serveur :

# python manage.py runserver

Et voilà votre application LodgeIt! est disponible à l’adresse suivante : http://localhost:5000/ Le port 5000 étant le port par défaut.

Notez que par défaut, l’application écoutera uniquement sur 127.0.0.1. Ce qui signifie que votre application ne sera accessible que sur http://localhost:5000/ et non depuis l’extérieur.
Pour palier à ce problème, il suffit de lancer votre serveur avec la commande suivante

# python manage.py runserver 0.0.0.0

Pour aller plus loin

Emplacement de la base de données

Vous pouvez changer l’emplacement de la base de données qui est, par défaut, stockée dans /tmp/lodgeit.db

Pour changer l’emplacement, il suffit d’éditer le fichier manage.py :

user@machine:/chemin/projet/lodgeit-dev/lodgeit# nano manage.py

Et de remplacer la valeur initiale de dburi par celle voulue.

Daemon

Voici un script Bash qui vous permettra de lancer l’application en tant que Daemon, c’est à dire en tant que service du système, et d’automatiser son lancement, son arrêt ou encore son rechargement.

Bien évidemment, pensez à remplacer les différentes informations.
Notez qu’ici, grâce au daemon, nous pouvons modifier le port d’écoute ainsi que l’adresse d’écoute directement.
Créez votre fichier à cet emplacement :

# nano /etc/init.d/lodgeit
#!/bin/bash

### BEGIN INIT INFO
# Provides:          lodgeit
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts instance of lodgeit pastebin
# Description:       starts instance of lodgeit pastebin
# start-stop-daemon
### END INIT INFO

############### EDIT ME ##################
# path to app
APP_PATH=/chemin/projet/lodgeit-dev/lodgeit

# path to python bin
DAEMON=/usr/bin/python

# startup args
DAEMON_OPTS="manage.py runserver -h 0.0.0.0 -p 5000"

# script name
NAME=lodgeit

# app name
DESC=lodgeit

# user
RUN_AS=root

PID_FILE=/var/run/lodgeit.pid

############### END EDIT ME ##################

test -x $DAEMON || exit 0 #verifie si pyhton est installe

set -e

case "$1" in
  start)
        echo "Starting $DESC"
        start-stop-daemon -d $APP_PATH -c $RUN_AS --start --background --pidfile $PID_FILE  --make-pidfile --exec $DAEMON -- $DAEMON_OPTS
        ;;
  stop)
        echo "Stopping $DESC"
        kill -15 `ps -edf | grep -v "grep" | grep "manage\\.py" | awk '{print $2}'`
        ;;

  restart|force-reload)
        echo "Restarting $DESC"
        kill -15 `ps -edf | grep -v "grep" | grep "manage\\.py" | awk '{print $2}'`
        sleep 15
        start-stop-daemon -d $APP_PATH -c $RUN_AS --start --background --pidfile $PID_FILE  --make-pidfile --exec $DAEMON -- $DAEMON_OPTS
        ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac
exit 0

Vous pourrez ensuite effectuer les différentes opérations par les commandes suivantes :

# service lodgeit start|stop|restart|reload

ou

# /etc/init.d/lodgeit start|stop|restart|reload

Proxifier l’application

Vous pouvez proxifier l’application pour qu’elle soit accessible depuis le port 80 si vous avez déjà un serveur web. Pour cela je vous redirige vers le tutoriel fonctionnant avec NGINX.

Sources

Vus : 1349
Publié par Openwebtech : 26