Etherpad
De Framawiki.
[modifier] Version concernée
La version concernée ici est la 1.1 de la fondation Etherpad.org, installée depuis le paquet pré-compilé pour Debian 6.0.
Adresse du dépôt :
deb http://apt.etherpad.org all .
Le sources :
git clone git://github.com/ether/pad.git
[modifier] Liens utiles
Projet GitHub :
- https://github.com/ether/pad/
- https://github.com/ether/pad/wiki/installation-instructions
- https://github.com/ether/pad/wiki/installation-instructions-II
Les problèmes connus sur le dépôt Google :
L'annonce de la sortie de la v1.1 de l'Etherpad Foundation :
Notes d'installation et d'optimisation du RECIT :
Code generated documentation :
Bearstech OpenJDK :
Pauleira installation (décrit l'utilisation du SSL) :
[modifier] Francisation
Traduction de tous les templates présents dans /usr/share/etherpad/etherpad/src/themes/default/templates.
Il s'agit de templates JavaScript EJS.
Un certain nombre de fonctions des bibliothèques statiques contenues dans les dossiers `/usr/share/etherpad/etherpad/src/static/js` retournent du texte présenté à l'utilisateur, donc à traduire également.
[modifier] Gestion des accents
Pour circonscrire les problèmes d'affichage d'accent dans les templates, il convient d'encoder les accents en symboles HTML :
& e a c u t e ;
Pour les scripts JavaScript, il est possible d'enregistrer le fichier source en charset utf8. Dans vi :
:set charset=utf8
Mais il reste les accents des courriels envoyés par le logiciel (lors de l'invitation d'utilisateurs dans un pad ou lors de la création d'un « compte pro »), dans certaines alertes JavaScript et dans le message par défaut à la création des pads.
/usr/share/etherpad/infrastructure/framework-src/modules/faststatic.js
Ligne 49 - 'js': 'application/x-javascript', - 'txt': 'text/plain', + 'js': 'application/x-javascript; charset=utf-8', + 'txt': 'text/plain; charset=utf-8', Ligne 66 - return _contentTypes[ext] || 'text/plain'; + return _contentTypes[ext] || _contentTypes['txt'];
3 occurrences à corriger ici :
/usr/share/etherpad/infrastructure/net.appjet.ajstdlib/ajstdlib.scala - msg.setContent(content, "text/plain"); + msg.setContent(content, "text/plain; charset=utf-8");
2 autres fichiers à éditer :
infrastructure/net.appjet.ajstdlib/streaming.scala
- res.setContentType("text/html");
+ res.setContentType("text/html; charset=utf-8");
infrastructure/net.appjet.oui/execution.scala - private var contentType = "text/html"; + private var contentType = "text/html; charset=utf-8";
- https://github.com/gaqzi/pad/commit/6cbfae42410933f70d20f50d99dd66dea2787b88
- https://github.com/gaqzi/pad/commit/b42345eef0f38bb0a582241a5480d07f3188f747
- https://github.com/ether/pad/commit/b42345eef0f38bb0a582241a5480d07f3188f747
[modifier] Limitation du nombre d'utilisateurs simultané d'un pad
Éditer le fichier /src/etherpad/quotas.js.
[modifier] Masquer l'adresse IP du serveur en title de chaque utilisateurs connecté
etherpad/src/static/js/pad_userlist.js:113:
/* if (data.titleText) {
tr.attr('title', data.titleText);
}
else {
tr.removeAttr('title');
}*/
tr.removeAttr('title');
[modifier] Installation du script de relance automatique
Pour que le script de relance automatique fonctionne, il est impératif qu'Etherpad n'ait pas été lancé avec l'utilisateur root en première instance. Sinon les divers fichiers de log sont créés par root, et donc plus accessibles en écriture pour l'utilisateur etherpad, ce qui fait échouer le script silencieusement.
Copier le fichier :
/usr/share/etherpad/contrib/cron/cron.d/etherpad
Dans :
/etc/cron/etherpad
- Vérifier que le chemin vers etherpad-watcher.sh est bon.
Dans :
/usr/share/etherpad/contrib/bin/etherpad-watcher.sh
- Personnaliser l'URL du service à surveiller.
- Éventuellement modifier le TIMEOUT de 480 à 240 secondes.
- Créer le dossier /usr/share/etherpad/etherpad/data/50x-error-handler/
Copier également le nettoyeur de résidus de conversions :
/usr/share/etherpad/contrib/cron/cron.daily/etherpad-remove-ooconvert
[modifier] Conversions via OpenOffice (ODT, PDF, ...)
Bien que le paquet pré-compilé de la fondation Etherpad soit estampillé « conversion OOo out of the box ». Pour que les conversions fonctionnent, il faut installer, en plus des dépendances du paquet etherpad, le paquet openoffice.org et toutes ses dépendances.
[modifier] Redirection des sous domaines
/etherpad/src/main.js:277: var newurl = "http://framapad.org"+request.path;
[modifier] Comptes Pro
Make sure it doesn’t redirect to etherpad.com for pro
Edit /usr/share/etherpad/etherpad/src/static/crossdomain.xml
+ <allow-access-from domain="framapad.org" to-ports="*"/> + <allow-access-from domain="*.framapad.org" to-ports="*"/>
[modifier] Personnalisation des couleurs disponibles pour les utilisateurs
etherpad/src/etherpad/globals.js
[modifier] Suppression de l'historique d'une discussion
UPDATE PAD_META SET numChatMessages = 0 WHERE PAD_ID = XXXXXX
[modifier] Le script Debian de lancement de service
/etc/init.d/etherpad.dpkg-new changement de path de /usr/local/etherpad à /usr/share/etherpad.
[modifier] Recompiler Etherpad sous Ubuntu
Laisser tel quel pour GNU/Linux Debian 6.0.
/usr/share/etherpad/bin/exports.sh - [ -e "/usr/lib/jvm/java-6-openjdk" ] && export JAVA_HOME="/usr/lib/jvm/java-6-openjdk" - [ -e "/usr/lib/jvm/java-6-sun" ] && export JAVA_HOME="/usr/lib/jvm/java-6-sun" - [ -e "/usr/lib/jvm/java-6-openjdk" ] && export JAVA_OPTS="-Xbootclasspath/p:../infrastructure/lib/rhino-js-1.7r1.jar:/usr/share/java/scala-library.jar" - export SCALA_HOME="/usr/share/java" - export SCALA_LIBRARY_JAR="/usr/share/java/scala-library.jar" - export MYSQL_CONNECTOR_JAR="/usr/share/java/mysql-connector-java.jar" - export JAVA="$JAVA_HOME/bin/java" - export SCALA="/usr/bin/scala" - export PATH="$JAVA_HOME/bin:$PATH" +export JAVA_HOME=“/usr/lib/jvm/java-6-sun” +export SCALA_HOME=“/usr/share/java” +export JAVA=“/usr/bin/java” +export SCALA=“/usr/bin/scala” +export SCALA_LIBRARY_JAR="$SCALA_HOME/lib/scala-library.jar" +export PATH=“/usr/bin:/usr/bin:/usr/local/mysql/bin:$PATH” +umask 022
/usr/share/etherpad/infrastructure/bin/makejar.sh +source /usr/share/etherpad/bin/exports.sh
cd /usr/share/etherpad/etherpad bin/rebuildjar.sh
[modifier] Réparation du PadInspector
etherpad/src/etherpad/control/admincontrol.js:536 - content: DIV(body, script) + content: DIV(div, script)
Modif arrivée également dans Github : https://github.com/ether/pad/commit/b716b1ce11c22a1c887f0d71dd2599383bf596b8
[modifier] Historique : liens version ou lecture-seule
Non fonctionnel sur Framapad.org.
Issue ouverte sur Github : https://github.com/ether/pad/issues/issue/227
Liens masqués dans :
themes/default/templates/pad/padview_body.ejs:90
[modifier] Fichier de configuration
[modifier] Masquer le port
Etherpad peut s'affranchir de l'utilisation d'un numéro de port dans les URL qu'il communique (courriels...). Pour ce faire il faut positionner la variable hidePort dans le fichier de configuration :
/etc/etherpad/etherpad.local.properties hidePorts = true
[modifier] Utilisation du SSL
etc/etherpad.localdev-default.properties
-listen = 9000 +listen = 0.0.0.0:9000 +listenSecure = 0.0.0.0:9001 +sslKeyPassword = XXX +sslKeyStore = ./data/appjet/sslkeystore +sslStorePassword = YYY
Générer un trousseau de clé de chiffrement pour Etherpad :
keytool -genkey -alias appjet -storepass XXX -keypass YYY -keyalg RSA -keystore etherpad/data/appjet/sslkeystore
Configurer le virtualhost apache en ajoutant une section :
/etc/apache2/sites-enabled/etherpad.conf
<VirtualHost *:443>
ProxyPass / https://framapad.org:9001/
ProxyPassReverse / https://framapad.org:9001/
ProxyPreserveHost on
ProxyRequests Off
SSLEngine on
SSLProxyEngine On
SSLCertificateFile /etc/ssl/framapad.org.crt
SSLCertificateKeyFile /etc/ssl/framapad.org.key
SSLCACertificateFile /etc/ssl/GandiStandardSSLCA.pem
SSLCertificateChainFile /etc/ssl/GandiStandardSSLCA.pem
SSLVerifyClient None
[...]
Relancer etherpad et recharger la configuration d'apache.
[modifier] Suppression des pads protégés par un mot de passe dans un espace privé
Pour l'instant, il n'est pas nécessaire de connaître le mot de passe d'un pad d'espace privé protégé par mot de passe pour le supprimer. J'ai proposé que ça soit rendu obligatoire pour les utilisateurs (non admin).
https://github.com/ether/pad/issues/244
