TROMBI est une application web permettant de générer un trombinoscope à partir d'un annuaire LDAP. Elle permet aussi d'afficher l'agenda de chaque personne du trombinoscope en se connectant à un agenda compatible iCalendar/CALDAV.
Inspiré de l'outil https://github.com/noelmartinon/webagenda-viewer.
Télécharger le zip de la version souhaitée (X.Y.Z) dans le répertoire /home
de votre utilisateur. Dézippez le et renommez le "trombi"
cd /home/`whoami`
wget https://github.com/PnEcrins/Trombi/archive/X.Y.Z.zip
unzip X.Y.Z.zip
mv Trombi-X.Y.Z trombi
rm X.Y.Z.zip
sudo apt-get install -y python3-pip
Désampler les fichiers de configuration et les modifier :
cp settings.sample.ini settings.ini
cp ldaptrombipy/config.sample.py ldaptrombipy/config.py
cp ldaptrombipy/static/app/dist/config.sample.json ldaptrombipy/static/app/dist/config.json
Le fichier ldaptrombipy/config.py
contient la connexion au LDAP et au Caldav. Il permet aussi d'exclure des utilisateurs ou des groupes d'utilisateurs.
Le fichier ldaptrombipy/static/app/public/config.json
est utilisé par le frontend pour connaitre l'API et définir si les utilisateurs peuvent ajouter ou modifier eux-mêmes les photos
Lancer le script d'installation install_app.sh
Réaliser une configuration Apache : Créer un fichier /etc/apache2/sites-available/trombi.conf
et copier le contenu du fichier https://github.com/PnEcrins/Trombi/blob/main/cong_apache.template (en adaptant les chemins).
Activer la configuration et redémarrer Apache :
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2ensite trombi
sudo apachectl restart
Le fichier config.py
permet de renseigner les paramètre de connexion au LDAP et au CALDAV.
Les paramètre suivants permettent de configurer les filtres sur le LDAP :
BASE_QUERY
définit le DIT à partir duquel la recherche débuteSEARCH_FILTERS
définit les filtres par défaut sur toutes les requêtes au LDAP. C'est un dictionnaire où la clé est l'élément sur lequel le filtre doit s'effectuer, et la valeur est la celle du filtre. Il est renseigné par défaut par {"objectClass": "*"}
, qui renvoie donc tous les éléments du LDAP. Pour ne renvoyer que les éléments qui ont un surname
, renseignez : {"sn": "*"}
. Les filtres de non égalité ne sont pas implémentés.Les filtres LDAP n'étant pas très aisé, le paramètre EXCLUDED_GROUPS
permet d'établir une liste des éléments à exclure. L'exclusion est basée sur le DN
(ou distinguishedName) en enlevant les préfixes (CN, OU ...). Exemple, pour le DN suivants : CN=Catherine Bidule,OU=Utilisateurs Partis,OU=ECRINS,DC=PNE,DC=dom
, mettre EXCLUDED_GROUPS = ['Utilisateurs Partis']
pour exclure cette personne
.env
à la dans le répertoire ldaptrombipy
et y mettre les variables suivantes :
FLASK_RUN_PORT=5004
FLASK_ENV=development
source venv/bin/activate
Lancer le backend : flask run
Le frontend utilise vue-cli
comme structure d'application, ainsi que ses outils de build.
Depuis ldaptrombipy/static
:
nvm install
npm install
Lancer le frontend npm run serve
Voir le fichier d'exemple : conf_apache.template