Etherpad-Lite auf Mac OS-X Server
Hier einmal eine kurze Beschreibung wie man am besten Etherpad-Lite auf OS-X Installiert.
Probiert habe ich es mit Mac OS-X 10.7 Server (Lion Server).
Vorraussetzung für die Installation ist Xcode welches im Mac App Store runtergeladen werden kann.
Der Packetmanager Homebrew kann die Installation vereinfachen, muss aber nicht genutzt werden.
Möchte man Homebrew nicht verwenden kann einfach die Installationsanleitung für Linux befolgt werden.
Interessant wird es dann wieder bei der Einrichtung als LaunchDaemon.
Installation mit Homebrew
- Zu aller erst muss der Packetmanager Homebrew installiert werden:
/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
- Dann sollte erstmal git installiert werden damit Homebrew anständig läuft:
brew install git
- Mit
brew install node
wird node.js installiert. - Der node Paketmanager npmist leider wegen Problemen nicht im Homebrew enthalten, muss also manuell installiert werden:
curl http://npmjs.org/install.sh | sh
Sind alle Programme vorhanden um wirklich Etherpad-Lite zu installieren:
- Es muss in den Ordner gewechselt werden in dem Etherpad-Lite installiert werden soll. Bei mir:
cd /usr/local/
- Dann wird mit git die aktuelle Version von Etherpad-Lite runtergeladen:
git clone 'git://github.com/Pita/etherpad-lite.git'
- In den etherpad-lite Ordner wechseln
cd etherpad-lite
- um noch weiter Abhängigkeiten mit npm und die Default-Configs zu installieren
bin/installDeps.sh
- Jetzt kann Etherpad-Lite ausgeführt werden
bin/run.sh
- Einen Browser öffnen und http://localhost:9001 eingeben.
Das Etherpad-Lite sollte jetzt laufen!
Es können jetzt noch Einstellungen in settings.json angepasst werden.
Konfiguration als LaunchDaemon
Etherpad-Lite sollte unter einem extra Benutzer laufen. Dieser Benutzer heißt bei mir: etherpad
Wenn der Benutzer angelegt ist müssen die Rechte für den Etherpad-Ornder angepasst werden:
sudo chown -R etherpad /usr/local/etherpad-lite/
Jetzt muss noch im log-Verzeichnis ein Ordner für die Logs von Etherpad-Lite angelegt werden:
sudo mkdir /var/logs/etherpad-lite
Auch für diese Verzeichnis müssen die Rechte angepasst werden:
sudo chown etherpad /var/logs/etherpad-lite
Die LaunchDaemon-Plist muss unter /Library/LaunchDaemons/org.etherpad.etherpad-lite.plist
gespeichert werden.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>org.etherpad.etherpad-lite</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/etherpad-lite/bin/safeRun.sh</string>
<string>/var/log/etherpad-lite/etherpad.log</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardOutPath</key>
<string>/var/log/etherpad-lite/etherpad.log</string>
<key>StandardErrorPath</key>
<string>/var/log/etherpad-lite/etherpad-error.log</string>
<key>UserName</key>
<string>etherpad</string>
<key>GroupName</key>
<string>etherpad</string>
</dict>
</plist>
Wurden andere Pfade benutz müssen diese in der Property-Liste angepasst werden.
Hat alles geklappt kann das Etherpad-Lite mit launchd gestartet werden:
sudo launchctl load /Library/LaunchDaemons/org.etherpad.etherpad-lite.plist
Jetzt sollte das Etherpad-Lite wieder unter http://localhost:9001 verfügbar sein.
Webapp
In Lion Server kann man jetzt ziemlich einfach Proxies und Webservices on-demand laufen lassen mit WebApps.
Einen guten Überblick über webappctl verschafft dieser Artikel und die manpages x-man-page://webappctl und x-man-page://webapp.plist
Die Konfigurationsdateien für Webapps liegen in /etc/apache2/webapps/
Für das Etherpad-Lite habe ich die Datei org.etherpad.etherpad-lite.plist
hinzugefügt.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!-- See man pages for webapp.plist(5) and webappctl(8) for information about this example webapp.plist -->
<plist version="1.0">
<dict>
<key>includeFiles</key>
<array> <!-- Include files are activated in virtual host when webapp is started -->
<string>/etc/apache2/httpd_etherpad.conf</string>
</array>
<key>launchKeys</key>
<array> <!-- Launchd plists in /System/Library/LaunchDaemons are loaded when webapp is started -->
<!-- <string>com.example.mywebapp</string> -->
</array>
<key>name</key>
<string>org.etherpad.etherpad-lite</string>
<key>proxies</key> <!-- ProxyPass/ProxyPassReverse directives are activated when webapp is started -->
<dict>
<key>/etherpad</key> <!-- Sets up a reverse proxy -->
<dict>
<key>path</key>
<string>/etherpad</string>
<key>urls</key> <!-- URLs comprise a proxy_balancer group -->
<array>
<string>http://localhost:9001</string>
</array>
</dict>
</dict>
<key>requiredModuleNames</key>
<array> <!-- Apache plugin modules are enabled when webapp is started -->
<string>proxy_module</string>
</array>
<key>requiredWebAppNames</key>
<array> <!-- Required web apps are started when this webapp is started -->
<!-- <string>com.example.webapp.myotherwebapp</string> -->
</array>
<key>sslPolicy</key> <!-- Determines webapp SSL behavior -->
<integer>0</integer> <!-- 0: default, UseSSLWhenEnabled -->
<!-- 1: UseSSLAlways -->
<!-- 2: UseSSLOnlyWhenCertificateIsTrustable -->
<!-- 3: UseSSLNever -->
<!-- 4: UseSSLAndNonSSL -->
</dict>
</plist>
Die eingebundene Konfiguration /etc/apache2/httpd_etherpad.conf
enthält Einstellungen für die Authentifizierung. Nur Benutzer die in der Gruppe etherpad_users
sind können auf das Etherpad zugreifen:
#configuration File for Etherpad-Lite webapp
<Location "/etherpad">
AuthType Digest
AuthName "Access Etherpad"
Require group etherpad_users
</Location>
Die Webapp starten:
sudo webappctl start org.etherpad.etherpad-lite
Das Etherpad solle jetzt unter http://localhost/etherpad erreichbar sein.