Installation de Wisemapping

Transcription

Installation de Wisemapping
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-7jdk).
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
INFO:oejs.AbstractConnector:Started
[email protected]:8080,
Wisemapping sont opérationnels.
le
la
serveur
ligne
web
et
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 « [email protected] » / 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/down
loads/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_mysql < create-database.sql
Puis la structure des tables :
mysql -uroot -pmot_de_passe_root_mysql < create-schemas.sql
(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=
et
database.password= par l’utilisateur et le mot de passe
choisis précédemment dans le fichier create-database.sql
Email
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 fichier
app.properties, il vous faudra tuer le processus java en cours
et relancer le script start.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.jar
4 – 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’URL
http://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 ligne DAEMON_OPTS par :
DAEMON_OPTS="-a
-T
-f
-S
-s
:80 \
localhost:6082 \
/etc/varnish/default.vcl \
/etc/varnish/secret \
malloc,1G"
Enfin, relancez varnish : service restart varnish
Important
Lorsqu’on utilise un proxy inverse, il est important de
définir le paramètre site.baseurl dans le fichier
app.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) et mail/*.vm (les mails) qui se trouvent dans
l’archive
webapps/wisemapping/lib/wise-webapp-3.1SNAPSHOT.jar.
En ce qui concerne les mails, certains éléments ne peuvent
être corrigé qu’en recompilant le logiciel (fichier wisewebapp/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-sourc
e.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 /wisewebapp/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.