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 wechselncd etherpad-lite
  • um noch weiter Abhängigkeiten mit npm und die Default-Configs zu installierenbin/installDeps.sh
  • Jetzt kann Etherpad-Lite ausgeführt werden

bin/run.sh

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.