Borgia-docs

Documentation - Installation

Build : 5.1+ Licence : GNU GPL version 3

Statut : EN COURS DE MODIFICATION POUR FICHIERS DE CONFIG

Introduction

Ce guide permet d’installer, configurer et faire fonctionner Borgia sur un serveur web en production.

L’ensemble de l’installation se fait sur un serveur sous Linux. La distribution n’est pas importante, mais le guide est écrit pour une distribution Debian, si tel n’est pas le cas certaines commandes (notamment les commandes d’installation de paquets) seront peut-être à adapter.

Première configuration du serveur

Préliminaires

Mettre à jour le serveur :

Supprimer Apache s’il est installé :

apt-get purge apache2

Installer des paquets nécessaires pour la suite de l’installation :

apt-get install curl apt-transport-https

Installer les packages python de base :

apt-get install build-essential libpq-dev python-dev libjpeg-dev libssl-dev libffi-dev

Installation de nginx, postgres & git :

Installation de pip pour python3 :

Installation de Yarn (cas explicite de Debian, sinon voir ici):

Création du dossier racine de Borgia :

mkdir /borgia-app

Mise en place de l’environnement virtuel Python

Installation de virtualenv

Fonctionnement de l’environnement virtuel

Installation et configuration de la base de données

Cette partie ne doit pas être effectuée dans l’environnement virtuel.

Sélectionner l’utilisateur postgres

su - postgres

La suite des commandes est a effectuer dans l’invite de commande postgres. psql permet d’activer l’invite et \q permet d’en sortir. Attention, toutes les commandes se terminent par un ;.

Création de la base de données

MOT_DE_PASSE_DB est le mot de passe choisi pour se connecter à la base de données. Faites attention à le modifier dans toutes les commandes.

Dans l’invite postgres :

Copie de Borgia

Dans /borgia-app :

Ensuite dans /borgia-app/Borgia :

Installation des paquets nécessaires à l’application

Dans /borgia-app/Borgia et dans l’environnement virtuel :

Et finalement, hors de l’environnement virtuel :

Configuration du logiciel

Paramètres vitaux

Copier le fichier /borgia-app/Borgia/contrib/production/settings.py dans /borgia-app/Borgia/borgia/borgia/settings.py et :

Base de données

Dans le fichier /borgia-app/Borgia/borgia/borgia/settings.py, modifier la partie :

DATABASES = {
...
}

en indiquant le nom de la base de données, le nom de l’utilisateur et le mot de passe définis lors de la configuration de cette dernière. Par exemple :

DATABASES = {
   'default': {
       'ENGINE': 'django.db.backends.postgresql_psycopg2',
       'NAME': 'borgia',
       'USER': 'borgiauser',
       'PASSWORD': 'mot_de_passe',
       'HOST': 'localhost',
       'PORT': '5432',
   }
}

Serveur mail

Dans le fichier /borgia-app/Borgia/borgia/borgia/settings.py :

Administrateurs

Les administrateur reçoivent des emails en cas de problèmes lors de l’utilisation de Borgia. Par exemple, si la base de données est inacessible, Borgia enverra automatiquement un mail aux administrateurs. Ces mails sont précieux et permettent de corriger des erreurs. En effet, l’interface de debug utilisée en développement n’est pas accessible ici et les mails la remplacent. Il convient d’ajouter au moins un administrateur qui va stocker les éventuels mails d’erreurs pour débuguer ensuite ou transférer à l’équipe de mainteneurs de Borgia.

Pour ajouter des administrateurs, indiquer les adresses mails dans la ligne ADMINS = dans le fichier /borgia-app/Borgia/borgia/borgia/settings.py.

Migration de la base de données

Dans /borgia-app/Borgia/borgia et dans l’environnement virtuel :

Ensuite, indiquer le mot de passe du compte administrateur (qui sera désactivé par la suite) :

Test intermédiaire

La commande dans l’environnement virtuel python3 manage.py runserver 0.0.0.0:8000 doit lancer le serveur et ne doit pas indiquer d’erreur. Si tel est le cas, continuer vers la suite et fin du guide d’installation.

Fin de la configuration du serveur

Le fichiers suivants existent peut être déjà dans le dossier copié. Si c’est le cas, il suffit de les modifier.

Installation de nginx et wsgi

Dans l’environnement virtuel :

ln -s /borgia-app/Borgia/borgia/borgia_nginx.conf /etc/nginx/sites-enabled/

service nginx restart

Test intermédiaire

La commande uwsgi --socket borgia.sock --module borgia.wsgi --chmod-socket=666 doit lancer le serveur sans problème (à condition d’avoir quelques modules python installés, le virtual env ne sera utilisé qu’ensuite). Si c’est le cas, c’est bientôt terminé !

Suite et fin de la configuration de nginx

Mode Empereur de nginx

Ce mode permet à Nginx de gérer automatiquement et de manière dynamique le projet. La suite n’est pas à effectuer dans l’environnement virtuel.

Démarrer uwsgi au démarrage du serveur

Dernier point, toujours en sudo en dehors de l’environnement virtuel. Ajoutez cette ligne à la fin du fichier (avant le exit 0) /etc/rc.local:

/usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals

Sauvegarde dans git

Enfin, il convient de sauvegarder l’ensemble de cette configuration sur une branche de production (sudo non nécessaire ici) :

Il n’est pas recommandé de push cette branche car elle pourrait contenir des informations sensibles comme des clés et des mots de passe.

Début d’utilisation / TODO : A VERIFIER AVEC 5.1+

Création d’un utilisateur

Le compte administrateur ne doit pas être utilisé lors de la production. Il permet simplement de créer un nouvel utilisateur réel et de lui donner les bonnes permissions.

Création d’un magasin

L’ensemble des magasins doivent être maintenant créés. Un seul exemple sera détaillé, mais il en est de même pour les autres.

Paramètres d’utilisation

Divers

En étant dans le groupe des présidents, aller dans le système de paramètres et modifier l’ensemble des informations qui vous semblent utiles.

Lydia

Les deux clés publique et privée LYDIA_API_TOKEN & LYDIA_VENDOR_TOKEN permettent d’identifier le compte auprès de Lydia. Ces informations sont obtenues en contactant le support de Lydia directement après avoir ouvert un compte professionnel chez eux.

TODO : VERIFIER ICI EN 5.1+

De même, il faut changer les deux urls LYDIA_CALLBACK_URL et LYDIA_CONFIRM_URL en modifiant la première partie qui concerne uniquement le domaine (borgia.iresam.org par exemple). Attention, LYDIA_CONFIRM_URL doit être en http et Borgia fera automatiquement la redirection si SSL est activé, mais LYDIA_CALLBACK_URL DOIT être en https si SSL est activé !