Etherpad Installation

Hier eine Anleitung zur Installation von Etherpad.
Wer die Team-Funktionalität von Etherpad nicht benötigt und das ganze schnell und einfach installieren möchte, der sollte sich Etherpad-Lite ansehen.

Die Installation von Etherpad wurde mit folgendem System durchgeführt:
OS: Debian Lenny 6.0.5
Etherpad: 1.1 (GIT-Version)

1 Installation der zusätzlichen Pakete und Software
1.1 Installation von git
apt-get install git

1.2 Java MySQL-Connector
Wird für die Verbindung mit der MySQL-Datenbank benötigt. Somit installieren wir sie:
apt-get install libmysql-java

1.3 Scala
Wir benutzen die Version aus dem Debian-Repository.
apt-get install scala scala-library
(Version 2.7.7 in meinem Fall)

1.4 Java
Ich benutze hier openjdk, da es in den Repositories liegt. Man kann auch beispielsweise das Java von Sun verwenden.
Fastjar wird für das generieren von gepacketen Jar-Dateien benötigt.
apt-get install openjdk-6-jdk openjdk-6-jre fastjar

2 MySQL-Datenbank installieren
apt-get install mysql-server mysql-client

Wir verbinden uns anschließend auf den MySQL-Server, um uns eine Datenbank und einen Benutzer anzulegen:
mysqladmin -u root -p create etherpad
mysql -u root -p
GRANT ALL PRIVILEGES ON etherpad.* TO 'etherpad'@'localhost' IDENTIFIED BY 'myPassword' WITH GRANT OPTION;

3 Etherpad einrichten
3.1 Download Etherpad Source Code
Auf Github finden wir die aktuelle Version von Etherpad: https://github.com/ether/pad
Sie wird schon seit längerem nicht mehr weiterentwickelt. Die Programmierer haben sich entschieden die Software in node.js neu zu schreiben, wie oben schon erwähnt: https://github.com/Pita/etherpad-lite/
Mit
git clone https://github.com/ether/pad.git
laden wir uns zunächst den aktuellen Stand herunter.

Danach wechseln wir in den Pad-Ordner und bauen Etherpad:
cd pad && bin/build.sh

3.2 Etherpad konfigurieren
In der Etherpad config müssen wir nun die richtigen Einstellungen eintragen. Diese befindet sich unter folgenden Pfad:
pad/etherpad/etc/etherpad.localdev-default.properties
Hier eine Erklärung der Config mit allen wichtigen Optionen:
# Verzeichnis der Module (Standardconfig sollte passen)
ajstdlibHome = ../infrastructure/framework-src/modules
# Verzeichnis der Appjet Dateien
appjetHome = ./data/appjet
# Entwicklungsmodus:
# true: Fehlermeldungen werden direkt auf der Website angezeigt und das Admin-Interface ist für jeden zugänglich (nicht für Produktivbetrieb empfohlen!)
# false: Für Produktivbetrieb
devMode = false
# Erlauben von ProAccounts (Erstellen von Subdomains)
etherpad.proAccounts = true
# Passwort für das Admin-Interface (https://domain.de/ep/admin/)
etherpad.adminPass = mySecretPw
etherpad.fakeProduction = false
etherpad.isProduction = true

# MySQL-Einstellungen
etherpad.SQL_JDBC_DRIVER = com.mysql.jdbc.Driver
etherpad.SQL_JDBC_URL = jdbc:mysql://127.0.0.1:3306/etherpad
etherpad.SQL_PASSWORD = mysqlPassword
etherpad.SQL_USERNAME = mysqlUser
# Maximale Threadanzahl, die Etherpad erstellen soll
#maxThreads = 512
# Zeige keine Portangaben in E-Mails, etc. an, falls diese vom Standard abweichen (z. B. wegen Reverse Proxy)
hidePorts = true
# Port für unverschlüsselte Übertragung
listen = 9000
# Port für SSL-Übertragung. Falls diese Option entfernt wird, wird kein Port für SSL-Übertragung geöffnet.
#listenSecure = 9001
# Verzeichnis in das die Logfiles geschrieben werden sollen
logDir = /var/log/etherpad/
# Verzeichnis der Module (Standardangabe)
modulePath = ./src
# Message-of-the-day (Standardmäßig die Seite mit zwei Buttons zum Erstellen eines Teams oder eines Pads)
motdPage = /ep/pad/view/ro.3PfHCD0ApLc/latest?fullScreen=1&slider=0&sidebar=0
# Hier müssen alle Domains und IPs eingetragen werden, mit der Etherpad aufgerufen können werden soll
topdomains = localhost,myDomain.de,otherDomain.org,192.168.1.10
# URL-Erweiterung, die Etherpad für Comet-Requests benutzen soll (Standardangabe)
transportPrefix = /comet
# Benutzen von zufällig generierten Subdomains für die Comet-Transaktionen (2031232.comet.subDomain.myDomain.de).
# Achtung: Führt zu Zertifikatsproblemen, da kein Zertifikat mit *.comet.*.myDomain.de erstellt werden kann. Ich habe dafür einen Fix erstellt: https://github.com/Gared/pad/commit/3157057d8f412f2533bdb75d1128d9eaea454d59
transportUseWildcardSubdomains = true
# Zwinge alle Benutzer HTTPS zu verwenden
useHttpsUrls = false
useVirtualFileRoot = ./src
# Standardtheme
# Themes findet man unter pad/etherpad/src/themes
theme = default
# OpenOffice Export-Service
/usr/bin/soffice
# Eigene Bezeichnung der Etherpad-Instanz
myEtherpad
# Eigene E-Mail Adresse
support@myDomain.de
# Anzeige von Lizenzen für den Text
showLinkandLicense = false
# Einstellungen für SSL-Zertifikat
# Die Anleitung für die Einrichtung von SSL befindet sich im Weiteren Verlauf der Anleitung
#sslKeyPassword =
#sslKeyStore = ./data/appjet/keystore
#sslStorePassword = myKeystorePassword
# Ausschließen von Log-Dateien
logExclude = # z.B. no-events,streaming-events
# Schaltet Shortpolling aus
disableShortPolling = false

3.3 Etherpad starten
Mit bin/run.sh starten wir Etherpad. Die Tabellen werden automatisch beim ersten Start eingerichtet.
Sollte alles funktioniert haben, erscheint die Zeile:
HTTP server listening on http://localhost:9000/
und wir können uns über die URL auf unser Pad verbinden.
Hurra geschafft! 🙂

4 Installation des OpenOffice Export-Services
Wer den Export und Import von PDF-, Word- und ODT-Dateien nutzen möchte, muss den OpenOffice-Service installieren.
Dazu ist die Installation der folgenden Pakete notwendig:
apt-get install openoffice.org-headless openoffice.org-java-common openoffice.org-writer openoffice.org-l10n-de
Der OpenOffice-Service wird automatisch gestartet, wenn Etherpad gestartet wird.

5 Etherpad mit https (SSL)
Java braucht einen Keystore um mit Zertifikaten umgehen zu können. Wir erstellen uns zunächst ein Zertifikat. Anleitungen dafür sollte es im Internet genügend geben. Wir erstellen uns ein Keystore und importieren dieses Zertifikat:
keytool -importcert -file /tmp/zertifikat.crt -keystore sslkeystore -storepass storePw -alias openssl -keypass keyPw
Mit folgenden Paramtern wird der Keystore in der Konfiguration eingerichtet:
sslKeyPassword = keyPw
sslKeyStore = ./data/appjet/sslkeystore
sslStorePassword = storePw

6 Init-Script
Folgt…

Getagged mit: , ,