Skip to content

rducrot/trombinoscope

Repository files navigation

Trombinoscope

Python Django License

Présentation

Application permettant de recenser les membres d'une organisation en y associant une photo d'identité et diverses informations.

Les membres sont regroupés dans une arborescence de services.

Installation

  1. Cloner le répertoire depuis Github, puis se placer dans le répertoire principal.
git clone https://github.com/rducrot/trombinoscope
cd trombinoscope
  1. S'assurer que les paquets suivants sont installés :
sudo apt-get update
sudo apt-get install python3 python3-pip python3-venv redis-server
  1. Installation de l'application via le script install.sh.
bash install.sh

Ce script met en place l'environnement virtuel, les dépendances, les variables d'environnement, la base de données et le super utilisateur.

Les informations qui vous sont demandées sont :

  • L'adresse IP du serveur (modifiable dans le fichier trombinoscope/.env).
  • Les informations du super utilisateur.

Import d'une base de données existante

Il est possible d'importer une liste de services et d'utilisateurs à partir de fichiers csv.

  1. Créer les fichiers services.csv et agents.csv dans le dossier scripts/. Voir les fichiers sample_*.csv du même dossier pour les entêtes. Voir les fichiers create_services.py et create_agents.py pour une documentation détaillée.
  2. Lancer les scripts suivants depuis l'environnement virtuel. A noter : si des services et des agents existent déjà dans la base de données, ceux-ci SERONT SUPPRIMES.
python3 manage.py runscript create_services
python3 manage.py runscript create_agents

Mise en production

Ci-dessous un exemple d'installation sur un serveur web Debian/Ubuntu avec Apache2 et l'application Trombinoscope installée dans /var/www.

On commence par installer les dépendances :

sudo apt-get update
sudo apt-get install apache2 apache2-dev libapache2-mod-wsgi-py3

On attribue les droits d'accès à l'application à Apache2 :

chown -R www-data:www-data /var/www/trombinoscope

Configuration dans /etc/apache2/

Exemple de fichier sites-available/trombinoscope.conf

<VirtualHost *:80>
DocumentRoot /var/www/trombinoscope

Alias /static /var/www/trombinoscope/static
<Directory /var/www/trombinoscope/static>
Require all granted
</Directory>

Alias /media /var/www/trombinoscope/media
<Directory /var/www/trombinoscope/media>
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/trombi_error.log
CustomLog ${APACHE_LOG_DIR}/trombi_access.log combined
</VirtalHost>

Exemple de fichier conf-available/wsgi.conf

WSGIScriptAlias / /var/www/trombinoscope/trombinoscope/wsgi.py
WSGIPythonHome /var/www/trombinoscope/venv
WSGIPythonPath /var/www/trombinoscope

<Directory /var/www/trombinoscope/trombinoscope>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

On lance ensuite les commandes suivantes :

a2ensite trombinoscope.conf
a2enmod wsgi.conf
systemctl restart apache2.service

Exécution en ligne de commande

Pour tester l'application en environnement de développement :

  1. Affecter DEBUG=True dans le fichier trombinoscope/.env.

  2. Activer l'environnement virtuel :

source venv/bin/activate
  1. Lancer la commande suivante depuis le répertoire de l'application :
python3 manage.py runserver

L'application est disponible par défaut à l'adresse http://127.0.0.1:8000.

Le super utilisateur peut gérer les services et les agents à l'adresse http://127.0.0.1:8000/admin.

Mise à jour

Depuis le répertoire de l'application :

git pull
source venv/bin/activate
python3 manage.py migrate
systemctl restart apache2.service

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published