Skip to content

Instructions d'installation v 5.x

Anca Luca edited this page Jan 29, 2023 · 18 revisions

Ces instructions décrivent comment installer l'observatoire des démarches, versions 5.x. Des paragraphes spécifiques sont dédiés aux opérations de mise à jour depuis la version 4.10. Ces instructions sont construites pour être utilisées pour une mise à jour de la version 4.x.

Ce projet tourne sur la plateforme XWiki, version 9.11.3, avec modifications - voir http://www.xwiki.org/ .

Build

Pour produire les artefacts de ce projet utilisés dans les instructions ci-dessous, utiliser la commande

mvn clean install

après avoir installé et configuré maven tel que décrit dans http://dev.xwiki.org/xwiki/bin/view/Community/Building/#HInstallingMaven .

Installation

Mise en place du WAR

Les configurations spécifiques suivantes sont à faire pour l'observatoire:

  • le war XWiki doit être déployé dans le contexte ROOT au lieu de xwiki (dans webapps/ROOT au lieu de webapps/xwiki)
  • copier xwiki.cfg, xwiki.properties et urlrewrite.xml from the sources from web/src/main/webapp/WEB-INF dans le répertoire WEB-INF de l'installation. Faire les configurations suivantes:
    • dans xwiki.cfg:
      • mettre des valeurs aléatoires dans xwiki.authentication.validationKey et xwiki.authentication.encryptionKey
    • dans xwiki.properties :
      • mettre la valeur du serveur courant dans environment.permanentDirectory
      • mettre la valeur du serveur courant dans openoffice.homePath
      • mettre le token d'API pingdom obtenu depuis (https://www.pingdom.com/ ) dans pingdom.apitoken.
    • dans hibernate.cfg.xml:
      • dans la configuration de la base de donnée activée (mysql), ajouter les lignes suivantes à la suite des autres lignes commençant par <mapping...:
        <mapping resource="observatoire/aggregates.hbm.xml"/>
        <mapping resource="observatoire/avis.hbm.xml"/>
  • Installer xwiki-platform-legacy-oldcore-DINSICDEMA9.11.3-5ac27ae16a240b3e43376195312e34076dfe9ae4.jar ainsi:
    • copier le fichier du répertoire bin des sources
    • coller ce fichier dans le répertoire WEB-INF/lib du war installé
    • supprimer le fichier xwiki-platform-legacy-oldcore-9.11.3.jar de ce répertoire (ou une autre version ancienne de ce fichier)
  • Installer xwiki-platform-search-solr-api-DINSICDEMA9.11.3-45ad9b0e084d555ea5dc1361eb7edb41d61e30d0.jar ainsi:
    • copier le fichier du répertoire bin des sources
    • coller ce fichier dans le répertoire WEB-INF/lib du war installé
    • supprimer le fichier xwiki-platorm-search-solr-api-9.11.3.jar de ce répertoire (ou une autre version ancienne de ce fichier)
  • Installer le correctif pour XCOMMONS-1151 ainsi:
  • Installer le correctif pour XWIKI-16960 ainsi:
    • copier le fichier xwiki-platform-dashboard-macro-9.11.8-XWIKI-14247-1321d264e4cc2da38c395ad46d3ff2cc388d0dbb.jar du répertoire bin des sources
    • coller ce fichier dans le répertoire WEB-INF/lib du war installé
    • supprimer le fichier xwiki-platform-dashboard-macro-9.11.3.jar de ce répertoire (ou une autre version ancienne de ce fichier)
  • Installer le fichier [xwiki-dinsic-wikidemarches-extensions-]tools-api-.jar (compilé à partir du module extensions/tools-api), dans le répertoire WEB-INF/lib du war installé
    • supprimer une version ancienne de ce fichier si elle est présente
  • Installer le plugin Excel dans le répertoire WEB-INF/lib du war installé ainsi:
  • Installer les ressources DSFR & et les ressources statiques du projet:
    • télécharger les répertoires dsfr-scoped et custom-wikidemarches du répertoire web/src/main/webapp/uicomponents/ des sources du projet
    • copier ces 2 répertoires dans le répertoire resources/uicomponents du war installé - si les répertoires sont déjà présents, les vider ou les supprimer avant de les remplacer avec les nouveaux.

Configuration Apache httpd

  • Configurer le fichier robots-public.txt pour être servi par Apache en tant que robots.txt sur la racine
  • La configuration Apache doit inclure les configurations suivantes:
    • servir observatoire.numerique.gouv.fr, avec les alias jedonnemonavis.numerique.gouv.fr et cerfa.numerique.gouv.fr, ainsi que les anciens noms nosdemarches.gouv.fr, monavis.numerique.gouv.fr et voxusagers.numerique.gouv.fr .
    • inclure la configuration de redirection ci-dessous:
    RewriteEngine On

    # Backwards compat: All nosdemarches redirects to monavis
    RewriteCond %{HTTP_HOST} "nosdemarches.gouv.fr"
    RewriteRule ^/(.*)$ https://monavis.numerique.gouv.fr/$1 [R,L,NE]

    # Backwards compat: All voxusagers redirects to jedonnemonavis
    RewriteCond %{HTTP_HOST} "voxusagers.numerique.gouv.fr"
    RewriteRule ^/(.*)$ https://jedonnemonavis.numerique.gouv.fr/$1 [R,L,NE]

    # Jedonnemonavis homepage and login redirect to observatoire
    RewriteCond %{HTTP_HOST} "jedonnemonavis.numerique.gouv.fr"
    RewriteRule ^/$ https://observatoire.numerique.gouv.fr/ [R,L,NE]
    RewriteCond %{HTTP_HOST} "jedonnemonavis.numerique.gouv.fr"
    RewriteRule ^/login(.*) https://observatoire.numerique.gouv.fr/ [R,L,NE]

    # Backwards compat for button ressources: Legacy monavis URLs: all view-mode=formulaire-avis go to jedonnemonavis
    RewriteCond %{HTTP_HOST} "^monavis.numerique.gouv.fr$"
    RewriteCond %{QUERY_STRING} view-mode=formulaire-avis
    RewriteRule ^/(.*)$ https://jedonnemonavis.numerique.gouv.fr/$1 [R,L,NE]

    # Backwards compat for button ressources: Legacy nosdemarches URLs avis form URLs but which don't contain view-mode=formulaire-avis but contain nd_mode (and will also contain nd_source in practice) go to jedonnemonavis
    RewriteCond %{HTTP_HOST} "^monavis.numerique.gouv.fr$"
    RewriteCond %{QUERY_STRING} nd_mode
    RewriteRule ^/(.*)$ https://jedonnemonavis.numerique.gouv.fr/$1 [R,L,NE]

    # Backwards compat for button ressources: all static ressources of monavis are now jedonnemonavis ressources, with the new static ressources path
    RewriteCond %{HTTP_HOST} "^monavis.numerique.gouv.fr$"
    RewriteRule ^/monavis-static/(.*)$ https://jedonnemonavis.numerique.gouv.fr/static/$1 [R,L,NE]

    # Backwards compat: all other monavis URLs (which haven't matched above, so they're not button ressources) go to observatoire
    RewriteCond %{HTTP_HOST} "^monavis.numerique.gouv.fr$"
    RewriteRule ^/(.*)$ https://observatoire.numerique.gouv.fr/$1 [R,L,NE]

    # Homepage is displayed as / whichever its actual address is
    RewriteRule "^/$" "/bin/view/Main/" [L,PT]
    RewriteRule "^/bin/view/Main/$" "/" [L,R]
    RewriteRule "^/bin/Main/$" "/" [L,R]
    RewriteRule "^/Main/$" "/" [L,R]

    # Workaround issue with an accented character being improperly encoded / handled by IE and sent as messed up value
    # This workaround can be removed if no requests are coming with the messed up character anymore, since we now encode properly all characters in the URLs and URLs are full ASCII. Check access logs before removing
    RewriteCond %{QUERY_STRING} ^nd_source=service-public.fr&nd_mode=en-ligne-enti.rement
    RewriteRule "^(.*)$" $1?nd_source=service-public.fr&nd_mode=en-ligne-entièrement [R,L]

Installation des ressources statiques

Ajouter les éléments suivants à la configuration Apache:

Juste après les configuarations pour ErrorDocument :

Alias "/static" /var/www/static

À la fin du fichier, avant ProxyPass /:

ProxyPass /static !

Copier le répertoire static des sources vers /var/www/static sur le serveur. Changer le propriétaire du répertoire et sous-répertoires vers l'utilisateur www-data.

Ressources "out of service"

Installer les fichiers maintenance.html et error.html (du répertoire maintenance des sources) comme fichiers à servir par Apache lorsque le tomcat est indisponible. La configuration de ces fichiers au niveau d'apache dépend des éléments spécifiques de l'installation.


Redemarrer le wiki à ce moment et le serveur Apache httpd pour prendre en compte les configurations ci-dessus.


Mise en place des ressources pour le calcul des données agrégées des avis

Première installation & mise à jour

  • Mettre en place l'accès à la base de données sans mot de passe pour l'utilisateur root
  • Dans le répertoire home de l'utilisateur root, copier le répertoire aggregates des sources de ce projet
  • Mettre en place la tâche périodique suivante dans crontab (ou s'assurer qu'elle est presènte et active si ce n'est pas la première installation):
    1 * * * * /root/aggregates/update.sh > /dev/null

Première installation: calcul des données pour le passé

Après avoir installé les scripts pour la première fois (mais avant d'activer la tâche périodique), il faut calculer les données agrégées des avis pour le passé. Pour cela, exécuter le script calcbymonth.sh du répertoire aggregates une fois pour chaque année de données du passé, en passant l'annéé en paramètre (par exemple calcbymonth.sh 2018). Attention, cette opération est longue à éxecuter.

Configuration du wiki

Accéder au wiki à partir du navigateur pour faire les configurations suivantes.

Extensions

À installer :

  • XWiki Livetable Exporter Macro, version 4.0.1 (extension id: org.xwiki.contrib:xwiki-livetable-exporter-macro)
    • ceci installera également Job Macro et tant que dépendance
  • UIN Script Service: org.xwiki.contrib:api-uin-scriptservice, version 2.0
  • Open Sans Font Webjar: En utilisant la recherche avancée, installer l'extension org.webjars.bower:open-sans à la version 1.1.0
  • Query Generator and Query Macro, version 1.4.1 (extension id: org.xwiki.contrib:application-querygenerator )
    • modifier les droits de la page Macros.QueryGenerator pour donner le droit 'voir' uniquement au groupe Admin
  • AppWithin Minutes Charts and Data, version 1.2.2 (extension id: org.xwiki.contrib:appwithinminutes-charts )
  • OpenCSV: com.opencsv:opencsv version 3.10
  • Chart.js Integration ( org.xwiki.contrib:application-chartjs-ui ), version 1.5
  • org.webjars:datatables version 1.10.19
  • org.webjars:datatables-fixedheader version 3.1.4
  • org.webjars:requirejs-domready, version 2.0.1-2
  • org.webjars:require-css, version 0.1.7
  • org.xwiki.contrib.membership:application-membership-profile, version 1.0.7
  • Matomo Application (org.xwiki.contrib:application-piwik-extension), version 1.3.1
  • JSON Storage API (org.xwiki.contrib:api-jsonstore) version 1.0

À désinstaller :

  • Help Center Application 1.2, Sandbox application 9.11.3, Help Application 9.11.3
  • XWiki Platform - Distribution - Flavor - Tour 9.11.3 : org.xwiki.platform:xwiki-platform-distribution-flavor-tour - cocher les cases pour supprimer toutes les pages à la dernière étape du processus de désinstallation
  • Tour Application 1.1 : org.xwiki.contrib:application-tour-ui - cocher les cases pour supprimer toutes les pages à la dernière étape du processus de désinstallation

Code spécifique

Première installation

  • Supprimer la traduction française de la page principale Main.WebHome ainsi:
    • Aller à l'administration du wiki
    • Activer l'option multilange, configurer Anglais et Français comme langues disponibles
    • Sauvegarder
    • Aller à la page d'accueil, en français et changer l'URL manuellement pour y l'action d'effacement et pour y ajouter ?language=fr à la fin (.../bin/delete/Main/WebHome?language=fr)
    • À la question suivante, confirmer la suppréssion en utilisant l'option "Selectionner tout"
    • Restaurer la configuration du wiki en monolangue, en français, dans l'administration du wiki
  • Importer le paquet xwiki-dinsic-wikidemarches-wikis-main-<version>.xar dans le wiki

Mise à jour d'une version précédente

  • Importer le paquet xwiki-dinsic-wikidemarches-wikis-main-upgrade-<version>.xar dans le wiki
  • Supprimer manuellement les pages supprimées des sources depuis la dernière version installée
  • Mettre en place manuellement toutes les modifications sur les pages non-upgradable depuis la dernière version installée

Configuration des outils de mesure d'audience (si nécessaire)

  • Dans Administration -> Autre -> Piwik, configurer les valeurs suivantes:
    • url piwik : l'URL du serveur Matomo qui collectera les données d'audience
    • Methode de tracking : tracking par Javascript
    • Id du site : l'id obtenu depuis le serveur Matomo configuré à la première étape
    • Tracking des utilisateurs : Non
    • Tracking multi-domaine : Non
    • URL du domaine : laisser vide

Import des données de l'observatoire (si nécessaire)

Suivre les instructions dédiées: Import des données de l'observatoire v5.x