<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wme00</id>
	<title>Hostsharing Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wme00"/>
	<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spezial:Beitr%C3%A4ge/Wme00"/>
	<updated>2026-04-28T16:26:55Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Etherpad_Installieren&amp;diff=7418</id>
		<title>Etherpad Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Etherpad_Installieren&amp;diff=7418"/>
		<updated>2025-09-01T09:46:16Z</updated>

		<summary type="html">&lt;p&gt;Wme00: /* v2: Konfiguration mit Proxy und systemd */ : Pfad auf die user systemd Konfiguration war nicht eindeutig.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Etherpad Lite installieren =&lt;br /&gt;
&lt;br /&gt;
Etherpad ist eine JavaScript-Anwendung mit der mehrere Bearbeiter gleichzeitig einen Text im Browser editieren können. &lt;br /&gt;
&lt;br /&gt;
Mit Hilfe von Etherpad können zum Beispiel die Teilnehmer einer Telefonkonferenz gemeinsam an einem Text-Dokument arbeiten.&lt;br /&gt;
&lt;br /&gt;
== Vorbereitung ==&lt;br /&gt;
&lt;br /&gt;
Als Paket-Admin &#039;&#039;xyz00&#039;&#039; werden mit HSAdmin ein User angelegt und eine Domain aufgeschaltet. Eine produktive Installation von Etherpad braucht zusätzlich einen MySQL-User und eine MySQL-Datenbank.&lt;br /&gt;
&lt;br /&gt;
Mit &#039;&#039;hsscript&#039;&#039; können diese Ressourcen wie folgt angelegt werden:&lt;br /&gt;
&lt;br /&gt;
Als Paketadmin &#039;&#039;xyz00&#039;&#039; aufrufen: &amp;lt;code&amp;gt;hsscript -i&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der HSAdmin-Shell gibt man dann ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
xyz00@hsadmin&amp;gt; user.add({set:{name:&#039;xyz00-pad&#039;, password:&#039;mein-Geheimwort&#039;, shell:&#039;/bin/bash&#039;}})&lt;br /&gt;
xyz00@hsadmin&amp;gt; domain.add({set:{name:&#039;pad.example.com&#039;, user:&#039;xyz00-pad&#039;}})&lt;br /&gt;
xyz00@hsadmin&amp;gt; mysqluser.add({set:{name:&#039;xyz00_padusr&#039;, password:&#039;anderes-Geheimwort&#039;}})&lt;br /&gt;
xyz00@hsadmin&amp;gt; mysqldb.add({set:{name:&#039;xyz00_paddb&#039;, owner:&#039;xyz00_padusr&#039;}})&lt;br /&gt;
xyz00@hsadmin&amp;gt; bye&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Etherpad v2.2.7 benötigt &#039;&#039;nodejs&#039;&#039; in einer Version &amp;gt; 18.18. Die Installation erfolgt gemäß der Wiki-Anleitung: [[NodeJS]]&lt;br /&gt;
&lt;br /&gt;
Zusätzlich muss der Paketmanager pnpm für Version 2 vorgehalten werden &lt;br /&gt;
&lt;br /&gt;
npm install pnpm@latest-10&lt;br /&gt;
&lt;br /&gt;
Als Paketadmin &#039;&#039;xyz00&#039;&#039; nimmt man mit &amp;lt;code&amp;gt;sudo -u xyz00-pad -i&amp;lt;/code&amp;gt; die Rechte des Domain-Administrators &#039;&#039;xyz00-pad&#039;&#039; für die neue Domain &#039;&#039;pad.example.com&#039;&#039; an.&lt;br /&gt;
&lt;br /&gt;
Die Etherpad-Software kann aus dem Git-Repository bei Github ausgecheckt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
cd&lt;br /&gt;
git clone https://github.com/ether/etherpad-lite.git&lt;br /&gt;
cd etherpad-lite/&lt;br /&gt;
git tag -l&lt;br /&gt;
git checkout tags/2.2.7&lt;br /&gt;
./bin/run.sh &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit &amp;quot;git checkout tags/2.2.7&amp;quot; wird Release 2.2.7 ausgecheckt, die heute (06.03.2025) aktuelle Version.&lt;br /&gt;
&lt;br /&gt;
Bei der Initialisierung der Anwendung gibt es einige Warnungen, die man ignorieren kann. Wenn die Initialisierung durchgelaufen ist, kann man&lt;br /&gt;
unter der URL http://xyz00.hostsharing.net:9001/ schon die die Etherpad-Anwendung ohne Datenbank und ohne die gewünschte Domain sehen.&lt;br /&gt;
&lt;br /&gt;
Wir brechen das &#039;&#039;run.sh&#039;&#039;-Skript mit Ctrl-c ab.&lt;br /&gt;
&lt;br /&gt;
== v2: Konfiguration mit Proxy und systemd ==&lt;br /&gt;
&lt;br /&gt;
  # ~/.config/systemd/user/etherpad-lite.service&lt;br /&gt;
  [Unit]&lt;br /&gt;
  Description=Etherpad-Lite Service&lt;br /&gt;
  [Service]&lt;br /&gt;
  WorkingDirectory=%h/etherpad-lite&lt;br /&gt;
  Environment=&amp;quot;NODE_ENV=production&amp;quot;&lt;br /&gt;
  Environment=&amp;quot;BIND=127.0.0.1&amp;quot;&lt;br /&gt;
  Environment=&amp;quot;PATH=/home/pacs/xyz00/users/tools_pad/.nvm/versions/node/v20.18.3/bin:/usr/local/bin:/usr/bin:/bin&amp;quot;&lt;br /&gt;
  ExecStart=%h/.nvm/versions/node/v20.18.3/bin/pnpm run prod&lt;br /&gt;
  [Install]&lt;br /&gt;
  WantedBy=default.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  # ~/doms/pad.example.com/.htaccess&lt;br /&gt;
  DirectoryIndex disabled&lt;br /&gt;
  RewriteBase /&lt;br /&gt;
  RewriteCond %{HTTP:Connection} Upgrade [NC]&lt;br /&gt;
  RewriteCond %{HTTP:Upgrade} websocket [NC]&lt;br /&gt;
  RewriteRule .* ws://localhost:9001%{REQUEST_URI}  [proxy]&lt;br /&gt;
  RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
  RewriteCond %{REQUEST_FILENAME} !-l&lt;br /&gt;
  RewriteRule .* http://localhost:9001%{REQUEST_URI} [proxy]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass auf 127.0.0.1 ge-binded wird, und nicht die von Welt erreichbare Adresse 0.0.0.0. Man beachte das im Systemd Service File die node version hardcoded wird und beim Update zwei mal entsprechend angepasst werden muss. Genauso der User und der Paketusername, der leider nicht direkt ersetzt werden kann. &lt;br /&gt;
&lt;br /&gt;
Dass auch nach Neustart der Etherpad Server erreichbar ist: &lt;br /&gt;
&lt;br /&gt;
systemctl --user enable etherpad-lite&lt;br /&gt;
&lt;br /&gt;
== v1: Konfiguration für Apache und Passenger ==&lt;br /&gt;
&lt;br /&gt;
Vor der Nutzung von [[Phusion Passenger]] bitte unbedingt die dortigen Hinweise zur Nutzung beachten.&lt;br /&gt;
&lt;br /&gt;
Die statischen Dateien der Anwendung werden mit den folgenden Befehlen richtig verlinkt&lt;br /&gt;
(immer noch als User &#039;&#039;xyz00-pad&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
cd&lt;br /&gt;
cd ~/doms/pad.example.com&lt;br /&gt;
rm -rf subs/www&lt;br /&gt;
rm -rf subs-ssl/www&lt;br /&gt;
rm -rf htdocs-ssl&lt;br /&gt;
ln -s ~/etherpad-lite/src/static htdocs-ssl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für die Anwendung legen wir im Verzeichnis &#039;&#039;~/doms/pad.example.com/app-ssl/&#039;&#039; eine Datei app.js mit dem folgenden Inhalt an:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=javascript&amp;gt;&lt;br /&gt;
require(&#039;/home/pacs/xyz00/users/pad/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js&#039;);&lt;br /&gt;
process.chdir(&#039;/home/pacs/xyz00/users/pad/etherpad-lite&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Datenbank anpassen =&lt;br /&gt;
&lt;br /&gt;
Zum Schluß wird in der Datei &#039;&#039;~/etherpad-lite/settings.js&#039;&#039; noch die MySQL-Datenbank konfiguriert. Dazu muss der Teil mit &#039;&#039;dbType: mysql&#039;&#039; aktiv (nicht auskommentiert) sein. Etwa wie folgt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=javascript&amp;gt;&lt;br /&gt;
&amp;quot;dbType&amp;quot; : &amp;quot;mysql&amp;quot;,&lt;br /&gt;
&amp;quot;dbSettings&amp;quot; : {&lt;br /&gt;
  &amp;quot;user&amp;quot;    : &amp;quot;xyz00_padusr&amp;quot;,&lt;br /&gt;
  &amp;quot;host&amp;quot;    : &amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;password&amp;quot;: &amp;quot;anderes-Geheimwort&amp;quot;,&lt;br /&gt;
  &amp;quot;database&amp;quot;: &amp;quot;xyz00_paddb&amp;quot;,&lt;br /&gt;
  &amp;quot;charset&amp;quot; : &amp;quot;utf8mb4&amp;quot;,&lt;br /&gt;
  &amp;quot;insecureAuth&amp;quot;: &amp;quot;true&amp;quot;&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Einstellungen für den &#039;&#039;dbType: dirty&#039;&#039; werden dafür entfernt.&lt;br /&gt;
&lt;br /&gt;
Weiter unten in der Datei kann dann noch ein Admin-User aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Etherpad sollte nun unter der URL: &#039;&#039;http://pad.example.com/&#039;&#039; erreichbar sein.&lt;br /&gt;
&lt;br /&gt;
= Update = &lt;br /&gt;
&lt;br /&gt;
Etherpad ist sehr pflegeleicht was das Update angeht. Es muss nur die neue Version in Git ausgecheckt werden und ./bin/run.sh erneut (einmalig) ausgeführt werden, damit die dependencies wieder neu gebaut werden. Auch von v1 -&amp;gt; v2 ist sonst nichts weiter zu tun.&lt;br /&gt;
&lt;br /&gt;
= Links =&lt;br /&gt;
&lt;br /&gt;
*[http://etherpad.org/ Etherpad Homepage (Englisch)]&lt;br /&gt;
*[https://github.com/ether/etherpad-lite/ Github Repository (Englisch)]&lt;br /&gt;
*[https://github.com/ether/etherpad-lite/wiki/Running-Etherpad-on-Phusion-Passenger Running Etherpad on Phusion Passenger (Englisch)]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Passenger]]&lt;br /&gt;
[[Kategorie:NodeJS]]&lt;/div&gt;</summary>
		<author><name>Wme00</name></author>
	</entry>
</feed>