Benutzer-Werkzeuge

Webseiten-Werkzeuge


cool:etherpadlite
Alle Anleitungen in diesem Wiki beziehen sich auf Uberspace 6. Die Dokumentation für U7 findest du im neuen Manual. Im Lab findest du außerdem von Usern erstellte Anleitungen für verschiedene Projekte.

Uberspace 6 basiert auf CentOS 6, welches ab Ende 2020 keine Updates mehr bekommt. Wir raten dir, bis dahin auf Uberspace 7 umzuziehen. Eine Anleitung zum Umzug findest Du hier: uberspace2uberspace

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
cool:etherpadlite [2017/03/13 07:06]
uber
cool:etherpadlite [2020/04/14 16:38] (aktuell)
uberspace
Zeile 1: Zeile 1:
-====== etherpad-lite ====== +Hier stand bisher unsere ​Anleitung, ​um Etherpad auf deinem Uberspace zu installieren. ​Da Uberspace 6 Ende 2020 ausläuft ​(siehe obenraten wir dringend davon ab, noch neue Projekte ​auf einem 6er Uberspace zu starten. ​Stattdessen empfehlen ​wir, neue Projekte ​auf einem neuen Uberspace 7 zu beginnenEine passende ​[[https://lab.uberspace.de/​guide_etherpad.html|Etherpad-Anleitung]] findest du im [[https://lab.uberspace.de/​|Lab]].
- +
-<note important>​ Achtung! In aktueller Version besteht Etherpad-Lite auf utf8mb4, benötigt also mindestens MySQL 5.5, welches default nicht zur Verfügung steht. Du benötigst also vor einem Update oder einer Neuinstallation [[https://​wiki.uberspace.de/​database:​mysql?​s[]=mysql#​mariadb_100|MariaDB]]. +
- +
-Alternativ kannst du auch Branch ''​release/​1.5.7''​ auschecken, der nach wie vor mit MySQL 5.1 funktioniert. Die folgende ​Anleitung ​haben wir entsprechend angepasst. +
-</​note>​ +
-[[https://​github.com/​ether/​etherpad-lite|etherpad-lite]] ist eine auf [[development:​nodejs|node.js]] basierende Alternative zum [[http://​etherpad.org/​|traditionellen Etherpad]]die [[http://​blog.etherpad.org/​2012/​01/​15/​etherpad-vs-etherpad-lite-which-is-right-for-you/​|selbst von Etherpad-Entwicklern empfohlen]] wird. Wir zeigen dir hier die nötigen Schritte, um es auf deinem Uberspace ​zum Laufen ​zu bringen. In dieser Dokumentation heißt der Beispieluser ''​else''​ und befindet sich auf dem Host ''​chaos.uberspace.de''​. +
- +
-===== npm installieren ​===== +
- +
-etherpad-lite benötigt einige node.js-Module, die es mittels npm nachinstallieren möchte. npm selbst ist bei aktuellen node.js-Versionen schon mit dabei; du brauchst aber eine Konfigurationsdatei,​ damit es Module an der richtigen Stelle und mit den richtigen Rechten installiert:​ +
- +
-  [else@chaos ~]$ cat > ~/.npmrc <<​__EOF__ +
-  prefix = $HOME +
-  umask = 077 +
-  __EOF__ +
- +
-Wichtig ist, dass du hier explizit den ''​cat''​-Befehl ausführst; es ist wichtig, dass ''​$HOME''​ dabei durch dein Home-Verzeichnis ersetzt wird (es darf also hinterher nicht ''​$HOME''​ in der ''​.npmrc''​ stehen, sondern ''/​home/​...''​)+
- +
-===== etherpad-lite installieren ===== +
- +
-Jetzt geht's an das eigentliche etherpad-lite. Dessen Code bekommst du am einfachsten mit Hilfe von git: +
- +
-  [else@chaos ~]$ git clone -b release/​1.5.7 https://​github.com/​ether/​etherpad-lite.git +
-  Cloning into etherpad-lite... +
-  remote: Counting objects: 5466, done. +
-  remote: Compressing objects: 100% (1882/​1882),​ done. +
-  remote: Total 5466 (delta 3832), reused 5116 (delta 3536) +
-  Receiving objects: 100% (5466/​5466),​ 2.30 MiB | 1.07 MiB/s, done. +
-  Resolving deltas: 100% (3832/​3832),​ done. +
- +
-Dann wechselst du in das frisch ausgecheckte Verzeichnis ... +
- +
-  [else@chaos ~]$ cd etherpad-lite  +
- +
-... und damit Etherpad mit MySQL 5.1 zusammenarbeitet,​ brauchst du einen bestimmten Branch: +
-   +
-  [else@chaos etherpad-lite]$ git checkout release/​1.5.7 +
- +
-Dann benutzt du das Script ''​bin/​installDeps.sh'',​ um die Abhängigkeiten zu installieren (zu diesem Zweck hatten ​wir ja gerade ''​npm''​ installiert):​ +
- +
-  [else@chaos etherpad-lite]$ bin/​installDeps.sh +
-  ... +
-===== Konfiguration anpassen ===== +
- +
-etherpad-lite wird in der Datei ''​settings.json''​ konfiguriert und bringt eine ''​settings.json.template''​ mitdie als Vorlage dient aber noch kopiert und vom Zusatz .template befreit werden muss:   +
- +
-    [else@chaos etherpad-lite]$ cp settings.json.template settings.json +
- +
-Hier musst du in erster Linie zwei Punkte anpassen: +
- +
-  - den Port, auf dem etherpad-lite laufen soll +
-  - die Datenbankeinstellungen für SQLite oder MySQL +
- +
-<note important>​Aufgepasst! Wenn Du in der ''​settings.json''​ Fehler hast, kann etherpad-lite nicht starten. ​Nahezu alle Supportanfragen die wir zu etherpad-lite habenlassen sich auf Fehler in der ''​settings.json''​ zurückführen.</​note>​ +
- +
-Du solltest nun also die ''​settings.json''​ in einem Texteditor öffnen, hier exemplarisch mit ''​nano'':​ +
- +
-  [else@chaos etherpad-lite]$ nano -w settings.json +
- +
-Anstelle des Standardports solltest du dir einen zufälligen anderen ​[[https://wiki.uberspace.de/​system:​ports|Port aus dem User-Bereich]] überlegen. Wir nehmen hier mal 9099 (wähle für deine Installation bitte einen anderen). Der betreffende Abschnitt sollte dann so aussehen: +
- +
-  ... +
-  //Ip and port which etherpad should bind at +
-  "​ip":​ "​0.0.0.0",​ +
-  "​port"​ : 9099, +
-  ... +
- +
-Passe dann außerdem den ''​dbType''​ auf ''​mysql''​ an, und trage die entsprechenden ''​dbSettings''​ ein. Die dafür erforderlichen Zugangsdaten ​findest du [[database:​mysql#​zugangsdaten|in deiner .my.cnf]] - relevant sind ''​user'',​ ''​password''​ und ''​database'';​ der ''​host''​ muss auf ''​localhost''​ bleiben. Die Angabe ''"​dbtype"​ : "​dirty"''​ und ihre zugehörige Konfiguration solltest du am Besten komplett entfernen, genauso wie die Kommentarzeichen,​ die die Vorlage für die MySQL-Konfiguration standardmäßig umgeben. So sollte der Abschnitt dann aussehen: +
- +
-  ... +
-  //The Type of the database. You can choose between dirty, sqlite and mysql +
-  //You should use mysql or sqlite for anything else than testing or development +
-  "​dbType"​ : "​mysql",​ +
-  //the database specific settings +
-  "​dbSettings"​ : { +
-                   "​user" ​   : "​else",​  +
-                   "​host" ​   : "​localhost",​  +
-                   "​password":​ "​Superkalifragilistischexpiallegetisch",​  +
-                   "​database":​ "​else"​ +
-                 }, +
-  ... +
- +
-Damit wäre dein etherpad-lite fertig konfiguriert. Mit ''​Strg+O''​ kannst du die ''​settings.json'' ​im nano speichern (Dateiname mit ''​Enter''​ bestätigen) und jenen dann mit ''​Strg+X''​ beenden. Nun solltest du dein etherpad-lite so einrichten, dass es automatisch gestartet wird, also z.B. auch dann, wenn wir den Uberspace-Host,​ auf dem du liegst, einmal rebooten. +
- +
-===== Einrichtung als Dienst ===== +
- +
-Wenn du noch keine eigene Instanz der [[system:​daemontools|daemontools]] laufen hast, solltest du jene zunächst einrichten:​ +
- +
-  [else@chaos ~]$ test -d ~/service || uberspace-setup-svscan  +
-  ... +
- +
-Anschließend richtest du den Dienst ein, der dein etherpad-lite automatisch startet: +
- +
-  [else@chaos ~]$ uberspace-setup-service etherpad-lite node ~/​etherpad-lite/​node_modules/​ep_etherpad-lite/​node/​server.js +
-  ... +
- +
-Es ist allerdings noch ein kurzer Klimmzug nötig: etherpad-lite erwartet, //im// Verzeichnis ''​etherpad-lite/​node''​ gestartet zu werden, weil zur Laufzeit unter anderem mit relativem Pfad auf die ''​../​APIKEY.txt''​ zugegriffen wird, und ''​bin/​installDeps.sh''​ stellt sicher, dass unter anderem Cache-Dateien auf dem neuesten Stand sind. Es ist also noch eine manuelle Änderung am Startscript ''​~/​service/​etherpad-lite/​run''​ nötig: Ändere den bestehenden Block ... +
- +
-  # Now let's go! +
-  exec /​package/​host/​localhost/​nodejs/​bin/​node /​home/​DEINUSER/​etherpad-lite/​node_modules/​ep_etherpad-lite/​node/​server.js 2>&​1 +
- +
-... wie folgt ab: +
- +
-  # Now let's go! +
-  cd ~/​etherpad-lite +
-  bin/​installDeps.sh 2>&​1 +
-  exec /​package/​host/​localhost/​nodejs/​bin/​node /​home/​DEINUSER/​etherpad-lite/​node_modules/​ep_etherpad-lite/​node/​server.js 2>&​1 +
- +
-<note important>​Aufgepasst:​ Anstelle von "​DEINUSER"​ muss hier natürlich **Dein Username** stehen!</​note>​ +
- +
-Starte anschließend den Dienst neu, um die Änderung zu übernehmen:​ +
- +
-  [else@chaos ~]$ svc -du ~/​service/​etherpad-lite +
- +
-Das war's dann - wenn du dich an diese Anleitung gehalten hast, läuft dein etherpad-lite nun auf dem von dir gewählten Port (der natürlich ein anderer als der Port 9099 ist als in dieser Dokumentation,​ klar). Was noch fehlt, ist die ... +
-===== Brücke zum Webserver ===== +
- +
-In diesem Beispiel soll etherpad-lite unter der URL ''/​pad''​ erreichbar sein. Dazu legen wir ein Verzeichnis dieses Namens im DocumentRoot an ... +
- +
-  [else@chaos ~]$ mkdir ~/​html/​pad +
- +
-... und legen dort eine [[development:​nodejs#​bruecke_zum_webserver|Brücke zum Webserver]] in Form einer [[webserver:​htaccess|.htaccess-Datei]] an: +
- +
-  [else@chaos ~]$ cat > ~/​html/​pad/​.htaccess <<'​__EOF__'​ +
-  RewriteEngine On +
-  RewriteRule (.*) http://​localhost:​9099/​$1 [P] +
-  __EOF__ +
- +
-Den Port 9099 aus dem Beispiel musst du natürlich auf den Port anpassen, auf den du deine Instanz von Etherpad-Lite oben konfiguriert hast. Das war's! Dein etherpad-lite ist nun in deinem Uberspace installiert und über den URL-Pfad ''/​pad''​ erreichbar; im konkreten Beispiel würde die URL also ''​%%https://else.chaos.uberspace.de/​pad%%''​ lauten. +
- +
-Weitere Hinweise zu den RewriteRules mit Proxy findest du [[webserver:​htaccess#​rewriterule_mit_proxy|hier]]. +
-===== Wenn es nicht klappt… ===== +
- +
-Schau zunächst einmal, ob der Dienst überhaupt läuft und länger als ein paar Sekunden läuft, dazu solltest Du diesen Befehl mehrmals mit ein paar Sekunden Abstand ausführen. +
- +
-<code bash> +
-svstat ~/​service/​etherpad-lite +
-</​code>​ +
- +
-Erreicht der Dienst eine Uptime von mehr als 10 Sekunden, scheint er zu laufen. Bleibt die Uptime immer wenigen Sekunden und wechselt der Dienst dabei die PID, dann ist etwas nicht in Ordnung. In dem Fall **schau am besten erstmal ins [[system:​daemontools#​logging|Log]]**:​ +
- +
-<code bash> +
-tail ~/​service/​etherpad-lite/​log/​main/​current | tai64nlocal +
-</​code>​ +
- +
-Die Logs von etherpad-lite sind leider nicht die hilfreichsten,​ aber in der Regel lässt sich schon ableiten, wo der Schuh drückt. (In 90% der Fälle von denen wir hören ist es ein Fehler in der ''​settings.json''​.)+
cool/etherpadlite.txt · Zuletzt geändert: 2020/04/14 16:38 von uberspace