====== Service banner.chapril.org ====== La séparation des interventions entre animateur et administrateur systèmes manque. De même la différence entre la VM ''lamp'' et celle du service doit être explicite. Enfin les pages Web générées par le //reverse proxy// du service n’impliquent pas la même procédure que les autres pages. À fin d'apporter une personnalisation homogène des services Chapril, une bannière mutualisée a été mise en place. Son intégration dans les sites des services passe par NGinx en insérant du code au passage. Au début, les fichiers de la bannière étaient dans le site [[https://www.chapril.org/|SPIP du Chapril]] puis ils ont été déplacés dans le site Web de démonstration : https://banner.chapril.org. ===== Dépôt Git ===== Dans la VM ''lamp'' le répertoire ''/var/www/banner.chapril.org/'' est versionné par Git. Le dépôt distant se situe dans la forge de l’April à l’adresse https://forge.april.org/Chapril/banner.chapril.org. Ce dépôt abrite deux versions distinctes : * La version 1 dans ''Chapril-banner/v1/'', faite au début juste pour qu'il y ait quelque chose ; * La version 2 actuelle dans ''Chapril-banner/v2/''. ===== Intégration v1 dans NGinx ===== Deux objectifs : * rendre disponibles les fichiers utiles à la bannière ; * modifier le code HTML des pages servies par NGinx. ==== Fichier prédéfinis ==== Fichier de configuration pour rendre disponible les fichiers utiles à la bannière : location /Chapril-banner { proxy_set_header Host banner.chapril.org; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://lamp.cluster.chapril.org; } Fichier de configuration pour modifier le code HTML des pages servies : set $banner_head ' '; set $banner_body '
'; subs_filter '' ' $banner_head '; subs_filter '' ' $banner_body '; sub_filter_once on;
==== Inclusion des fichiers prédéfinis ==== Si le nom de domaine du site ciblé est ''foo.chapril.org'' des directives sont à inclure dans son fichier de configuration ''/etc/nginx/sites-enabled/foo.chapril.org'' : #[…] include /etc/nginx/sexy-chapril; include /etc/nginx/acme-challenge; include /etc/nginx/chapril-banner-location; #[…] location / { include /etc/nginx/chapril-banner; #[…] } ==== Fichiers de la bannière ==== Fichiers de la bannière v1 : cd /var/www/banner.chapril.org/Chapril-banner/v1/ ll total 24 -rw-r--r-- 1 root root 3574 oct. 14 01:19 april-logo-small.png -rw-r--r-- 1 root root 1960 oct. 14 01:51 chapril-banner.css -rw-r--r-- 1 root root 2345 oct. 14 01:28 chapril-favicon.png -rw-r--r-- 1 root root 2096 oct. 14 00:50 chapril-logo-small.png -rw-r--r-- 1 root root 1477 oct. 14 01:24 test.xhtml ===== Intégration v2 dans un site statique ===== Intégrer manuellement la bannière dans une page Web consiste à inclure quelque lignes de code et à copier deux fichiers. Pour ça le répertoire ''Chapril-banner/v2/'' doit être récupéré. Le dépôt ''banner.chapril.org'' dans la forge de l’April contient un exemplaire de ce répertoire. On y compte trois fichiers : * ''index.html'' pour intégrer la bannière dans la page Web ; * ''chapril-banner.css'' pour le style de la bannière ; * ''chapril-banner-logo.png'' pour le logotype du Chapril. Dans le fichier HTML de la page d’accueil on inclut ces lignes de code :
La balise ''