Installation de Wisemapping
Wisemapping est le logiciel d’édition collaborative de cartes mentales que nous proposons sur Framindmap.
Voici un tutoriel pour vous aider à l’installer sur votre serveur.
N’hésitez pas à poser des questions dans les commentaires. Si vous êtes parvenu à l’installer, donnez-nous le lien vers votre instance et dites-nous dans quelle mesure ce tutoriel vous aura été utile
Prérequis
Java Development Kit 7
Pour faire fonctionner Wisemapping, il est nécessaire d’installer Java Development Kit 7. La version libre openjdk-7 présente dans les dépôts de votre distribution GNU/Linux suffit normalement (sur Debian : apt-get install openjdk-7-jdk
).
Premier pas – Semer en pot
Ensuite, vous n’avez qu’à télécharger le fichier .zip sur le site officiel, extraire le contenu dans un dossier, ouvrir ce dossier dans un terminal et exécuter la commande ./start.sh
(également possible sur Windows en tapant java -Xmx256m -Dorg.apache.jasper.compiler.disablejsr199=true -jar start.jar
).
Lorsque vous voyez apparaître la ligne INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8080
, le serveur web et Wisemapping sont opérationnels.
Pour utiliser Wisemapping, ouvrez votre navigateur web à l’adresse http://localhost:8080/wisemapping
.
Vous pouvez dès à présent enregistrer un compte (ou utiliser le compte « test@wisemapping.org » / mot de passe « test ») et créer des cartes mentales.
Cependant, il s’agit là d’une « installation » minimale du logiciel pour un usage personnel et local.
Par défaut, Wisemapping est pré-configuré pour tourner avec une base de données HSQLDB et avec un serveur web Jetty qui occupe le port 8080.
Dans le cadre d’une utilisation en ligne multi-utilisateurs, il est nécessaire d’avoir un serveur dédié et de procéder à quelques changements de configuration.
Base de données
Sur la page d’accueil du logiciel, il y a un message d’avertissement indiquant qu’il est préférable d’utiliser MySQL au lieu de HSQLDB. Il est aussi possible d’utiliser une base de données PostgreSQL pour améliorer les performances mais les développeurs de Wisemapping testent peu cette configuration.
Reverse proxy et nom de domaine
Pour proposer le service avec un nom de domaine et une URL plus propre il y a plusieurs possibilités :
- utiliser un proxy inverse via un serveur web comme Apache ou nginx,
- ou bien via un serveur de cache comme Varnish qui en plus d’être léger permet d’accélérer le chargement des pages.
Informations
Dans la suite de ce tutoriel, les instructions seront données pour un serveur dédié sous Debian Wheezy avec une base de données MySQL et l’utilisation de Varnish.
Nous supposerons que vous avez déjà fait pointer votre nom de domaine sur votre serveur auprès de votre registraire.
Installation
1 – Préparer la terre
Tout d’abord, connectez-vous en tant que root
sur votre serveur et créez un compte utilisateur wisemapping
ainsi que le dossier /var/www/wisemapping
dans lequel seront copiés les fichiers avec les droits d’accès correspondants.
useradd wisemapping groupadd wisemapping mkdir /var/www/wisemapping chown wisemapping:wisemapping -R /var/www/wisemapping
2 – Semer
Connectez-vous avec l’utilisateur wisemapping
: su wisemapping -s /bin/bash
Téléchargez le fichier .zip et copiez son contenu dans le dossier /var/www/wisemapping
cd /var/www/wisemapping wget https://bitbucket.org/wisemapping/wisemapping-open-source/downloads/wisemapping-v3.0.3.zip unzip wisemapping-v3.0.3.zip mv wisemapping-v3.0.3/* . && rmdir wisemapping-v3.0.3 && rm wisemapping-v3.0.3.zip
3 – Arroser
MySQL
Il faut maintenant créer la base de données et configurer Wisemapping.
Installez tout d’abord le paquet mysql-server
(notez le mot de passe root) et démarrez MySQL : service mysql start
Dans le dossier config/database/mysql
de wisemapping se trouvent les fichiers .sql permettant de créer la base de données, créer ou mettre à jour la structure des tables et éventuellement les remplir avec des données en exemple.
Modifiez le fichier create-database.sql pour changer le mot de passe (ligne 10) PASSWORD('ici_le_mot_de_passe')
et si vous le souhaitez vous pouvez aussi changer l’utilisateur (lignes 9 et 10)'ici_l_utilisateur'@'localhost'
.
On crée la base de données en ligne de commande :
cd /var/www/framindmap.org/config/database/mysql mysql -uroot -pmot_de_passe_root_mysqlPuis la structure des tables :
mysql -uroot -pmot_de_passe_root_mysql(idem avec
apopulate-schemas.sql
si vous souhaitez ajouter les données en exemple)Wisemapping
Maintenant que la base de données est prête, il faut configurer Wisemapping pour qu'il puisse s'en servir.
Éditez le fichier
webapps/wisemapping/WEB-INF/app.properties
, décommentez (ie enlever les #) les lignes concernant MySQL et commentez celles concernant HSQL.Remplacez les valeurs de
database.username=
etdatabase.password=
par l'utilisateur et le mot de passe choisis précédemment dans le fichiercreate-database.sql
Toujours dans le fichier
app.properties
, modifier la partie Plain SMTP Server Configuration avec les paramètres SMTP d'une adresse à vous qui fonctionne.Cette étape est indispensable pour que les utilisateurs inscrits puissent recevoir les e-mails de confirmation, les notifications lorsqu'une carte est partagée ou un nouveau mot de passe lorsqu'ils l'ont oublié.
Processus silencieux
Lorsque qu'on lance le script
start.sh
, le serveur tourne tant qu'on ne quitte pas le terminal. Pour éviter de devoir conserver un terminal ouvert en permanence, on exécute la commande suivie d'un&
.Information
Chaque fois que vous effectuez un changement dans le fichierapp.properties
, il vous faudra tuer le processus java en cours et relancer le scriptstart.sh
.Lorsque la machine plante et doit redémarrer, il peut être utile de relancer Wisemapping au démarrage. Pour cela, créez un fichier
/etc/init.d/wisemapping
contenant cette ligne :cd /var/www/wisemapping && java -Xmx256m -Dorg.apache.jasper.compiler.disablejsr199=true -jar start.jar4 - Pailler
À ce stade, si tout s'est bien passé, lorsque vous exécutez le script
start.sh
, Wisemapping est pleinement fonctionnel. Vous n'avez qu'à vous rendre sur l'URLhttp://ip_de_votre_serveur:8080/wisemapping
pour pouvoir l'utiliser.Nous allons maintenant configurer Wisemapping pour le rendre accessible depuis un nom de domaine avec Varnish.
Varnish
En tant que
root
, installez le paquet varnish :apt-get install varnish
Éditez le fichier
/etc/varnish/default.vcl
pour y mettre ceci (en remplaçant « votre-nom-de-domaine ») :backend default { .host = "127.0.0.1"; .port = "9042"; } backend wisemapping { .host = "127.0.0.1"; .port = "8080"; } sub vcl_recv { if (req.restarts == 0) { if (req.http.x-forwarded-for) { set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip; } else { set req.http.X-Forwarded-For = client.ip; } } if (! req.http.Host) { error 404 "Need a host header"; } set req.http.Host = regsub(req.http.Host, ":\\d+$", ""); if (req.http.host == "votre-nom-de-domaine") { set req.backend = wisemapping; } } sub vcl_pipe { #we need to copy the upgrade header if (req.http.upgrade) { set bereq.http.upgrade = req.http.upgrade; } #closing the connection is necessary for some applications – I haven’t had any issues with websockets keeping the line below uncommented #set bereq.http.Connection = "close"; return (pipe); } sub vcl_error { if (obj.status == 750) { set obj.http.Location = obj.response; set obj.status = 302; return(deliver); } }Dans le fichier
/etc/default/varnish
, afin que varnish écoute le port 80 et puisse rediriger les requêtes vers Wisemapping, remplacez la ligneDAEMON_OPTS
par :DAEMON_OPTS="-a :80 \\ -T localhost:6082 \\ -f /etc/varnish/default.vcl \\ -S /etc/varnish/secret \\ -s malloc,1G"Enfin, relancez varnish :
service restart varnish
Important
Lorsqu'on utilise un proxy inverse, il est important de définir le paramètresite.baseurl
dans le fichierapp.properties
.Information
Si vous souhaitez utiliser un certificat SSL sur votre site (ce que nous conseillons), il vous faudra utiliser Nginx ou Apache en tant que reverse proxy. Vous pouvez vous inspirer de la configuration proposée
dans le fichier README.md sur https://github.com/ldidry/lutim.Wisemapping à la racine
Pour pouvoir accéder à Wisemapping directement depuis la racine du site, il faut remplacer dans le fichier
contexts/wisemapping.xml
la ligne :<Set name="contextPath">/wisemapping</Set>par
<Set name="contextPath">/</Set>5 - Tailler et désherber
La personnalisation de votre instance de Wisemapping passe par l'édition à la main des fichiers
webapps/wisemapping/jsp/*.jsp
Ils contiennent le code html des pages d'accueil, de création de compte et de gestions des cartes ainsi que le contenu des fenêtres modales de l'éditeur de cartes pour partager, exporter ou paramétrer son compte.
Par défaut, il y a bien plus de formats proposés à l'export que ce que nous avons mis pour Framindmap : certains sont des formats fermés dont nous ne souhaitons pas encourager l'utilisation (Microsoft Excel, MindManager), d'autres sont défectueux (OpenDocument, images PNG/JPG, PDF).
Certains éléments de l'interface et les e-mails de notification ne sont pas traduits (ou mal). Pour les corriger, il faut modifier les fichiers
messages_fr.properties
(l'interface) etmail/*.vm
(les mails) qui se trouvent dans l'archivewebapps/wisemapping/lib/wise-webapp-3.1-SNAPSHOT.jar
.En ce qui concerne les mails, certains éléments ne peuvent être corrigé qu'en recompilant le logiciel (fichier
wise-webapp/src/main/java/com/wisemapping/mail/NotificationService.java
dans les sources). Il y avait également un bug sur la version 3.0.3 empêchant l'utilisation de Wisemapping avec Firefox 30. Le bug était corrigé sur la version de développement.Nous avons donc du recompiler le logiciel pour y apporter ces petites corrections en attendant qu'une nouvelle version officielle sorte.
Voici donc la procédure. Elle semble effrayante mais c'est en réalité assez simple :
- installer maven
apt-get install maven
- importer les sources dans un dossier de travail
git clone https://bitbucket.org/wisemapping/wisemapping-open-source.git
- corriger les fichiers problématiques
- compiler
mvn package
- à la fin de cette opération, un fichier wisemapping.war (simple archive .zip) est créé dans
/wise-webapp/target/
, il contient l'équivalent de ce qui se trouve dans votre dossier/var/www/wisemapping/webapps/wisemapping
Si vous souhaitez éviter d'en passer par là, vous pouvez utiliser notre fichier wise-webapp-3.1-SNAPSHOT.jar (compatible avec la version 3.0.3) qu'il suffit de copier dans le dossier webapps/wisemapping/lib/
en remplacement.