Skip to content

pombredanne/dezede

 
 

Repository files navigation

Projet Dezède

Auteur

Bertrand Bordage

Copyright

Bertrand Bordage © 2011-2013

travis_ coveralls_

Procédure d'installation

Note

Toutes les commandes sont à exécuter dans le répertoire du projet.

  1. Vérifier la satisfaction des dépendances.
  2. Choisir un mode de lancement :

Dépendances

Système d'exploitation

Ubuntu 12.10 « Quantal Quetzal »

Pour installer les dépendances qui suivent :

sudo ./dependances.sh

Paquets

Nécessaires à l'exécution

Paquet Version
nano
postgresql 9.1
python2.7 2.7.3
python-pip 1.1
python-docutils 0.8.1
memcached 1.4.14

python-dev libxml2 libxml2-dev libxslt1-dev

2.7.3

elasticsearch 0.90.2
rabbitmq-server 3.0.2

Nécessaires au déploiement

Paquet Version
nginx 1.2.1
gunicorn 0.17.4
supervisor 3.0a8

Modules Python

Nécessaires à l'exécution

Voir le fichier requirements.txt.

Configuration de PostgreSQL

PostgreSQL

  1. Effectuer les actions suivantes :

    sudo -i -u postgres
    psql
    CREATE USER dezede LOGIN;
    CREATE DATABASE dezede OWNER dezede;
    ALTER USER dezede WITH ENCRYPTED PASSWORD 'mot_de_passe';
    \q
    exit
  2. Paramétrer l'accès de Django à la base de données :

    • Éditer le fichier de réglages :

      nano settings.py

    • Les réglages à modifier sont dans DATABASES.
  3. Création des tables de la base de données :

    ./manage.py syncdb puis ./manage.py migrate

Lancement du serveur de développement

  1. Passer en mode DEBUG :

    • Éditer le fichier de réglages :

      nano settings.py

    • Remplacer la ligne DEBUG = False par :

      DEBUG = True
  2. Configuration de PostgreSQL
  3. Création des révisions initiales :

    ./manage.py createinitialrevisions

  4. Collecte des fichiers statiques :

    ./manage.py collectstatic -l

  5. Préparation du dossier d'upload :

    mkdir -p media/uploads/

  6. Indexation des données :

    ./manage.py rebuild_index

  7. Lancement du serveur de développement :

    ./manage.py runserver

Déploiement

  1. Configuration de PostgreSQL
  2. Création des révisions initiales :

    ./manage.py createinitialrevisions

  3. Collecte des fichiers statiques :

    sudo ./manage.py collectstatic

  4. Préparation du dossier d'upload :

    sudo mkdir -p media/uploads/

  5. Compiler les fichiers de langues :

    ./manage.py compilemessages

  6. Indexation des données :

    ./manage.py rebuild_index

  7. Configuration de nginx

Configuration de nginx

nginx

  1. Création d'un site dans nginx :

    sudo nano /etc/nginx/sites-available/dezede

  2. Copier ceci dans ce dernier (en remplaçant ce qui est balisé [[quelque_chose]]) :

    server {
      listen 80;
      server_name [[adresse_ou_domaine]];
    
      gzip on;
      gzip_vary on;
      gzip_types
        text/plain
        text/css
        text/javascript
        application/x-javascript
        image/png
        image/svg+xml
        image/jpeg
        image/x-icon
        application/pdf
        application/octet-stream;
    
      add_header Cache-Control public;
    
      client_max_body_size 50M;
    
      location /media {
        alias [[/chemin/du/projet]]/media;
        allow all;
        expires 1y;
      }
    
      location /static {
        alias [[/chemin/du/projet]]/static;
        allow all;
        expires 1w;
      }
    
      location / {
        proxy_pass http://localhost:8000;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
      }
    }
  3. Activer le site et désactiver le site par défaut :

    sudo ln -s /etc/nginx/sites-available/dezede /etc/nginx/sites-enabled/
    sudo unlink /etc/nginx/sites-enabled/default
  4. Configuration de supervisor pour lancer automatiquement le serveur django avec gunicorn :

    sudo nano /etc/supervisor/conf.d/dezede.conf

  5. Copier ceci dans ce dernier (en remplaçant ce qui est balisé [[quelque_chose]]) :

    [program:dezede]
    directory=[[/chemin/du/projet]]
    command=gunicorn_django -w3 --timeout=300
    user=[[utilisateur]]
    autostart=true
    autorestart=true
    redirect_stderror=true
    stdout_logfile=[[/chemin/du/projet]]/supervisor_django.log
    stdout_logfile_maxbytes=10MB
    
    [program:dezede_celery]
    directory=[[/chemin/du/projet]]
    command=python manage.py celery worker --loglevel=info
    user=[[utilisateur]]
    autostart=true
    autorestart=true
    redirect_stderror=true
    stdout_logfile=[[/chemin/du/projet]]/supervisor_celery.log
    stdout_logfile_maxbytes=10MB
  6. Relancer le serveur avec :

    sudo service supervisor restart
    sudo service nginx restart

Localisation

  1. Ajouter (éventuellement) la langue désirée à LANGUAGES du fichier settings.py
  2. Metre à jour à partir de Transifex :

    tx pull -a

  3. Compiler les fichiers de langues (en se mettant au préalable dans le dossier de l'application ou du projet) :

    ./manage.py compilemessages

  4. Relancer le serveur

Tests de régression

Une suite de tests a été créée pour l’application libretto. Pour la lancer, exécuter :

sudo ./manage.py test libretto

About

Dezède, a musicology project focused on performances.

Resources

License

Stars

Watchers

Forks

Packages

No packages published