<?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=Hsh-michaelhoennig</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=Hsh-michaelhoennig"/>
	<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spezial:Beitr%C3%A4ge/Hsh-michaelhoennig"/>
	<updated>2026-04-25T21:36:10Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Gitea&amp;diff=5307</id>
		<title>Gitea</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Gitea&amp;diff=5307"/>
		<updated>2020-11-15T16:02:44Z</updated>

		<summary type="html">&lt;p&gt;Hsh-michaelhoennig: keyserver keys.gnupg.net und @reboot für gitea selbst&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Gitea installieren ==&lt;br /&gt;
&lt;br /&gt;
[https://gitea.io/en-us/ Gitea] ist ein einfacher, selbst gehosteter Git-Service wie GitHub oder GitLab. Die Software ist ein Fork von Gogs und ebenfalls in der Programmiersprache Go geschrieben. Gitea benötigt wenig Ressourcen. Um Gitea auf der Hostsharing Plattform nutzen zu können, benötigt man entweder einen Managed Server oder man muss für seinen Managed Webspace einen Daemon hinzubuchen.&lt;br /&gt;
&lt;br /&gt;
Gitea unterstützt verschiedene Datenbanken. Wir gehen in dieser Anleitung davon aus, dass PostgreSQL benutzt wird.&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitung der Installation ===&lt;br /&gt;
&lt;br /&gt;
Um Gitea auf der Managed Operation Platform von Hostsharing zu installieren, ist folgende Vorbereitung erforderlich.&lt;br /&gt;
&lt;br /&gt;
1. Anlegen eines Domain-Benutzers. In unserem Beispiel &amp;lt;code&amp;gt;xyz00-gitea&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Anlegen einer Domain. In unserem Beispiel &amp;lt;code&amp;gt;gitea.hs-example.de&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3. Anlegen eines Datenbank-Benutzers. Hier &amp;lt;code&amp;gt;xyz00_giteadbuser&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
4. Anlegen einer Datenbank. Hier &amp;lt;code&amp;gt;xyz00_giteadb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Auf der Kommandozeile kann man dies folgendermaßen erledigen.&lt;br /&gt;
&lt;br /&gt;
Man loggt sich als Paketbenutzer ein und startet die Kommandozeilenversion von HSAdmin mit dem Befehl &amp;lt;code&amp;gt;hsscript&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
  hsscript -u xyz00 -i&lt;br /&gt;
  Password: ********&lt;br /&gt;
&lt;br /&gt;
Anschließend kann man die Vorbereitungsschritte 1 bis 4 erledigen:&lt;br /&gt;
&lt;br /&gt;
  xyz00@hsadmin&amp;gt; user.add({set:{name:&#039;xyz00-gitea&#039;,password:&#039;geheim&#039;,shell:&#039;/bin/bash&#039;}})&lt;br /&gt;
  xyz00@hsadmin&amp;gt; domain.add({set:{name:&#039;gitea.hs-example.de&#039;,user:&#039;xyz00-gitea&#039;}})&lt;br /&gt;
  xyz00@hsadmin&amp;gt; postgresqluser.add({set:{name:&#039;xyz00_giteadbuser&#039;,password:&#039;geheim&#039;}})&lt;br /&gt;
  xyz00@hsadmin&amp;gt; postgresqldb.add({set:{name:&#039;xyz00_giteadb&#039;,owner:&#039;xyz00_giteadbuser&#039;}})&lt;br /&gt;
&lt;br /&gt;
=== Installation von Gitea ===&lt;br /&gt;
&lt;br /&gt;
Gitea wird als Binary zur Verfügung gestellt.&lt;br /&gt;
Wir installieren das Binary im Verzeichnis des Domain-Benutzers.&lt;br /&gt;
Wenn wir als Paketbenutzer eingeloggt sind, können wir den Benutzer folgendermaßen wechseln:&lt;br /&gt;
&lt;br /&gt;
  sudo -u xyz00-gitea -i&lt;br /&gt;
  &lt;br /&gt;
Nun laden wir das passende Binary herunter.&lt;br /&gt;
Auf der Website https://dl.gitea.io/gitea/ finden Sie das jeweils aktuelle Binary (hier die 64-Bit-Version, &lt;br /&gt;
für die shared Server h01 bis h08 bitte die 32-Bit-Version gitea-1.7.0-linux-i386 herunterladen).&lt;br /&gt;
&lt;br /&gt;
  wget -O gitea https://dl.gitea.io/gitea/1.7.0/gitea-1.7.0-linux-amd64&lt;br /&gt;
  chmod +x gitea&lt;br /&gt;
&lt;br /&gt;
Wir laden die GPG-Signatur herunter und überprüfen sie:&lt;br /&gt;
&lt;br /&gt;
  wget https://dl.gitea.io/gitea/1.7.0/gitea-1.7.0-linux-amd64.asc&lt;br /&gt;
  gpg --keyserver keys.gnupg.net --recv 7C9E68152594688862D62AF62D9AE806EC1592E2&lt;br /&gt;
  gpg --verify gitea-1.7.0-linux-amd64.asc gitea&lt;br /&gt;
&lt;br /&gt;
Nun können wir Gitea testweise starten:&lt;br /&gt;
&lt;br /&gt;
  ./gitea web&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Der Webserver von Gitea startet auf dem Port 3000. Das werden wir später ändern.&lt;br /&gt;
&lt;br /&gt;
Der Server kann mit Ctrl-C beendet werden.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration der Domain ===&lt;br /&gt;
&lt;br /&gt;
Zunächst wechseln wir in das Verzeichnis &amp;lt;code&amp;gt;doms/gitea.hs-example.de&amp;lt;/code&amp;gt; und löschen den Ordner für die Subdomain &#039;www&#039;:&lt;br /&gt;
&lt;br /&gt;
  rm -rf subs/www&lt;br /&gt;
  rm -rf subs-ssl/www&lt;br /&gt;
  &lt;br /&gt;
Anschließend tragen wir die Umleitung auf HTTPS ein, falls dies nicht schon geschehen ist.&lt;br /&gt;
&lt;br /&gt;
  vi htdocs/.htaccess&lt;br /&gt;
  &lt;br /&gt;
Der Eintrag muss lauten:&lt;br /&gt;
&lt;br /&gt;
  Redirect permanent / https://gitea.hs-example.com/&lt;br /&gt;
  &lt;br /&gt;
Dann legen wir die Datei &amp;lt;code&amp;gt;htdocs-ssl/.htaccess&amp;lt;/code&amp;gt; mit folgendem Inhalt an:&lt;br /&gt;
&lt;br /&gt;
  DirectoryIndex disabled&lt;br /&gt;
  RewriteEngine on&lt;br /&gt;
  RewriteBase /&lt;br /&gt;
  RewriteRule ^(.*) http://localhost:31580/$1 [proxy,last]&lt;br /&gt;
  &lt;br /&gt;
Merken Sie sich die Portnummer 31580.&lt;br /&gt;
Sie wird später bei der Konfiguration von Gitea gebraucht.&lt;br /&gt;
Die Portnummer bekommen Sie vom Hostmaster, wenn Sie für Ihren Webspace einen Serverdienst (Daemon) buchen.&lt;br /&gt;
Wenn Sie einen Managed Server haben, können Sie selbst die Portnummer auswählen.&lt;br /&gt;
&lt;br /&gt;
Damit ist die Konfiguration von Apache abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von Gitea ===&lt;br /&gt;
&lt;br /&gt;
Wir editieren nun die Konfigurationsdatei von Gitea &amp;lt;code&amp;gt;app.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
Sie befindet sich in dem Verzeichnis &amp;lt;code&amp;gt;~/custom/conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ACHTUNG&#039;&#039;&#039;: Sie können die Konfiguration teilweise auch über das Webinterface durchführen. Starten Sie dazu Gitea, wie oben beschrieben, und versuchen Sie einen Benutzer zu registrieren. Daraufhin öffnet sich der Konfigurationsdialog. Sie müssen den Gitea-Benutzer, den Namen der Datenbank, den Datenbank-Benutzer und sein Passwort parat haben.&lt;br /&gt;
&lt;br /&gt;
Die Konfigurationsdatei beginnt mit allgemeinen Einträgen:&lt;br /&gt;
&lt;br /&gt;
  APP_NAME = Gitea: Git with a cup of tea&lt;br /&gt;
  RUN_USER = xyz00-gitea&lt;br /&gt;
  RUN_MODE = prod&lt;br /&gt;
  &lt;br /&gt;
Im Abschnitt [database] folgen die Angaben zur Datenbank:&lt;br /&gt;
&lt;br /&gt;
  [database]&lt;br /&gt;
  DB_TYPE  = postgres&lt;br /&gt;
  HOST     = 127.0.0.1:5432&lt;br /&gt;
  NAME     = xyz00_giteadb&lt;br /&gt;
  USER     = xyz00_giteadbuser&lt;br /&gt;
  PASSWD   = geheim&lt;br /&gt;
  SSL_MODE = disable&lt;br /&gt;
  PATH     = data/gitea.db&lt;br /&gt;
&lt;br /&gt;
Es folgt der Pfad zu den Git-Repositorys und die Server-Konfiguration:&lt;br /&gt;
&lt;br /&gt;
  [repository]&lt;br /&gt;
  ROOT = /home/pacs/xyz00/users/gitea/gitea-repositories&lt;br /&gt;
  &lt;br /&gt;
  [server]&lt;br /&gt;
  PROTOCOL         = http&lt;br /&gt;
  SSH_DOMAIN       = gitea.hs-example.de &lt;br /&gt;
  DOMAIN           = gitea.hs-example.de&lt;br /&gt;
  HTTP_ADDR        = localhost&lt;br /&gt;
  HTTP_PORT        = 31580&lt;br /&gt;
  ROOT_URL         = https://gitea.hs-example.de/&lt;br /&gt;
  DISABLE_SSH      = false&lt;br /&gt;
  SSH_PORT         = 22&lt;br /&gt;
  LFS_START_SERVER = true&lt;br /&gt;
  &lt;br /&gt;
Sie können nun Gitea starten:&lt;br /&gt;
&lt;br /&gt;
  ./gitea web&lt;br /&gt;
  &lt;br /&gt;
Der Git-Service ist dann im Browser unter der Adresse gitea.hs-example.de erreichbar.&lt;br /&gt;
&lt;br /&gt;
=== Start- und Stopp-Skripte einrichten ===&lt;br /&gt;
&lt;br /&gt;
Zum Schluss müssen Sie noch Start- und Stoppskripte einrichten und Monit konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Das Startskript speichern Sie unter dem Pfad &amp;lt;code&amp;gt;~/bin/gitea-start.sh&amp;lt;/code&amp;gt; ab.&lt;br /&gt;
Es hat folgenden Inhalt:&lt;br /&gt;
&lt;br /&gt;
  #!/bin/bash&lt;br /&gt;
  export HOME=/home/pacs/xyz00/users/gitea&lt;br /&gt;
  export PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
  export PID=$HOME/.gitea.pid&lt;br /&gt;
  cd $HOME&lt;br /&gt;
  exec $HOME/gitea web &amp;gt;$HOME/custom/logs/gitea.log 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
  echo $! &amp;gt; $PID&lt;br /&gt;
&lt;br /&gt;
Das Stoppskript speichern Sie unter dem Pfad &amp;lt;code&amp;gt;~/bin/gitea-stop.sh&amp;lt;/code&amp;gt; an.&lt;br /&gt;
Es hat folgenden Inhalt:&lt;br /&gt;
&lt;br /&gt;
  #!/bin/bash&lt;br /&gt;
  export HOME=/home/pacs/xyz00/users/gitea&lt;br /&gt;
  export PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
  export PID=$HOME/.gitea.pid&lt;br /&gt;
  cd $HOME&lt;br /&gt;
  &lt;br /&gt;
  if [ -f $PID ] ; then &lt;br /&gt;
      kill $( cat $PID );&lt;br /&gt;
      sleep 20 ;&lt;br /&gt;
      kill -9 $( cat $PID ) &amp;gt;/dev/null 2&amp;gt;&amp;amp;1 ;&lt;br /&gt;
      rm $PID ;&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
Monit ist ein Programm zur Überwachung eines Servers oder eines Dienstes.&lt;br /&gt;
Das Programm erwartet im Verzeichnis des Domain-Benutzers die Datei &amp;lt;code&amp;gt;~/.monitrc&amp;lt;/code&amp;gt; mit der entsprechenden Konfiguration.&lt;br /&gt;
Legen Sie die Datei mit folgendem Inhalt an:&lt;br /&gt;
&lt;br /&gt;
  set daemon 600&lt;br /&gt;
  set logfile /home/pacs/xyz00/users/gitea/custom/logs/monit.log&lt;br /&gt;
  set mailserver localhost&lt;br /&gt;
  set alert webmaster@gitea.hs-example.de&lt;br /&gt;
  #&lt;br /&gt;
  check process gitead with pidfile /home/pacs/xyz00/users/gitea/.gitea.pid&lt;br /&gt;
      start program &amp;quot;/home/pacs/xyz00/users/gitea/bin/gitea-start.sh&amp;quot;&lt;br /&gt;
      stop program &amp;quot;/home/pacs/xyz00/users/gitea/bin/gitea-stop.sh&amp;quot;&lt;br /&gt;
      &lt;br /&gt;
Nun können Sie noch die Rotation der Logfiles konfigurieren.&lt;br /&gt;
Dies geschieht in der Datei &amp;lt;code&amp;gt;~/.logrotate&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
  /home/pacs/xyz00/users/gitea/custom/logs/gitea.log {&lt;br /&gt;
    copytruncate&lt;br /&gt;
    daily&lt;br /&gt;
    rotate 7&lt;br /&gt;
    compress&lt;br /&gt;
    missingok&lt;br /&gt;
  }&lt;br /&gt;
  /home/pacs/xyz00/users/gitea/custom/logs/monit.log {&lt;br /&gt;
    copytruncate&lt;br /&gt;
    monthly&lt;br /&gt;
    rotate 2&lt;br /&gt;
    compress&lt;br /&gt;
    missingok&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Damit gitea auch nach einem Server-Neustart neu gestartet wird und auch die Konfiguration für logrotate und monit eingelesen werden, müssen Sie folgenden Eintrag in der crontab der Domain-Benutzers machen:&lt;br /&gt;
&lt;br /&gt;
  # m h  dom mon dow   command&lt;br /&gt;
  HOME=/home/pacs/xyz00/users/gitea&lt;br /&gt;
  PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
  PID=$HOME/.gitea.pid&lt;br /&gt;
  @reboot /usr/bin/monit -c $HOME/.monitrc &amp;gt; /dev/null&lt;br /&gt;
  @reboot $HOME/gitea-start.sh&lt;br /&gt;
  51 1 * * * /usr/sbin/logrotate -s $HOME/.logrotate.state $HOME/.logrotate&lt;br /&gt;
 &lt;br /&gt;
Wichtig sind die @reboot-Einträge, die automatisch nach einem Neustart des Hosts ausgeführt werden.&lt;br /&gt;
Die Uhrzeit für die Logrotation können Sie beliebig einstellen.&lt;br /&gt;
&lt;br /&gt;
Abschließend können Sie Ihre Gitea-Instanz starten:&lt;br /&gt;
&lt;br /&gt;
  ~/bin/gitea-start.sh&lt;/div&gt;</summary>
		<author><name>Hsh-michaelhoennig</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=NodeJS&amp;diff=4533</id>
		<title>NodeJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=NodeJS&amp;diff=4533"/>
		<updated>2017-11-27T15:24:05Z</updated>

		<summary type="html">&lt;p&gt;Hsh-michaelhoennig: /* Binärinstallation */ Fehlermeldung&amp;quot;libstdc++.so.6: cannot open shared object file&amp;quot; hinzugefügt, auch für die Suche&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Eigene NodeJS Installation ==&lt;br /&gt;
&lt;br /&gt;
Die JavaScript-Umgebung NodeJS für das Ausführen von JavaScript auf dem Server unterliegt noch einer rasanten Entwicklung.&lt;br /&gt;
Daher ist die Debian-Version, die bei Hostsharing vorinstalliert ist, oft zu alt für aktuelle Software.&lt;br /&gt;
&lt;br /&gt;
Ein kurze Anleitung für die eigene NodeJS-Installation für einen User.&lt;br /&gt;
&lt;br /&gt;
=== Installation von nvm ===&lt;br /&gt;
&lt;br /&gt;
Heute ist die Version v0.33.6  aktuell, siehe auch https://github.com/creationix/nvm/releases&lt;br /&gt;
&lt;br /&gt;
    $ touch ~/.profile&lt;br /&gt;
    $ chmod u+x ~/.profile&lt;br /&gt;
    $ cd /tmp&lt;br /&gt;
    $ wget https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh&lt;br /&gt;
    $ chmod u+x install.sh &lt;br /&gt;
    $ ./install.sh &lt;br /&gt;
&lt;br /&gt;
An dieser Stelle ab- und wieder anmelden oder die Befehle ausführen:&lt;br /&gt;
&lt;br /&gt;
    $ export NVM_DIR=&amp;quot;/home/pacs/xyz00/users/example/.nvm&amp;quot;&lt;br /&gt;
    $ [ -s &amp;quot;$NVM_DIR/nvm.sh&amp;quot; ] &amp;amp;&amp;amp; \. &amp;quot;$NVM_DIR/nvm.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Bitte auf die bei der Installation ausgegebenen Zeilen am Ende achten, &lt;br /&gt;
denn neuere nvm-Versionen benötigen ggf. etwas andere Schritte zur sofortigen Aktivierung.&lt;br /&gt;
&lt;br /&gt;
=== Installation von NodeJS ===&lt;br /&gt;
&lt;br /&gt;
Zunächst prüfen, ob ein 32bit oder 64bit Linux auf dem jeweiligen Hostsharing-Host installiert ist:&lt;br /&gt;
&lt;br /&gt;
    dpkg --print-architecture&lt;br /&gt;
&lt;br /&gt;
==== Binärinstallation ====&lt;br /&gt;
&lt;br /&gt;
Diese Variante funktioniert  bei Hostsharing nur auf amd64 Systemen (64bit Linux auf 64bit CPU).&lt;br /&gt;
&lt;br /&gt;
    $ nvm install 4&lt;br /&gt;
    $ nvm alias default 4&lt;br /&gt;
&lt;br /&gt;
installiert (zum Beispiel) sehr einfach NodeJS in der Version 4.8.6 (27.11.2017).&lt;br /&gt;
&lt;br /&gt;
analog für die Version 6.x:&lt;br /&gt;
&lt;br /&gt;
    $ nvm install 6&lt;br /&gt;
    $ nvm alias default 6&lt;br /&gt;
&lt;br /&gt;
Hinweis: Auf i386 Systemen würde von nvn immer ein 64bit Node installiert werden, &lt;br /&gt;
das führt dann zu der Fehlermeldung: &amp;quot;libstdc++.so.6: cannot open shared object file&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Soucecode-basierte Installation auf einem 32bit Linux ====&lt;br /&gt;
&lt;br /&gt;
Diese Variante funktioniert sowohl auf amd64 als auch auf i386 Systemen (32bit Linux auf 64bit CPU).&lt;br /&gt;
&lt;br /&gt;
    $ nvm install -s 8.9.1 --dest-cpu=ia32&lt;br /&gt;
    $ nvm alias default 8.9.1&lt;br /&gt;
&lt;br /&gt;
Die Sourcecode-basierte Installation benötigt temporär sehr viel Speicherplatz und bis zu 1 Stunde für Downloads und Kompilation.&lt;br /&gt;
Der Speicherplatz kann nach Fertigstellung wieder freigegeben werden, z.B.:&lt;br /&gt;
&lt;br /&gt;
    $ rm -r ~/.node  ~/.nvm/.cache/src/node-v8.9.1&lt;br /&gt;
&lt;br /&gt;
==== Überprüfung der Installation ====&lt;br /&gt;
&lt;br /&gt;
Der Befehl&lt;br /&gt;
&lt;br /&gt;
    $ node -v&lt;br /&gt;
&lt;br /&gt;
gibt die Version des aktiven NodeJS aus.&lt;br /&gt;
&lt;br /&gt;
=== NodeJS Web-Applikation ===&lt;br /&gt;
&lt;br /&gt;
Zur Integration der eigenen NodeJS-Installation in den Apache erfolgt über das  Apache-Modul &amp;quot;Passenger&amp;quot;.&lt;br /&gt;
Vor der Nutzung dieses Moduls bitte unbedingt die 	&lt;br /&gt;
[[Phusion Passenger|Hinweise zur Nutzung beachten]].&lt;br /&gt;
&lt;br /&gt;
Den Pfad zum node-Binärprogramm konfiguriert man in einer &amp;quot;.htaccess&amp;quot;-Datei im&lt;br /&gt;
Verzeichnis der Domain &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/.htaccess&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
    PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v4.8.6/bin/node&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
    PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v6.12.0/bin/node&lt;br /&gt;
&lt;br /&gt;
Zum Testen kann man eine &amp;quot;app.js&amp;quot; ins Verzeichnis &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/app-ssl/&amp;quot; &lt;br /&gt;
ablegen.&lt;br /&gt;
&lt;br /&gt;
Eine minimale &amp;quot;app.js&amp;quot; zur Anzeige der NodeJS Version:&lt;br /&gt;
&lt;br /&gt;
    var http = require(&amp;quot;http&amp;quot;);&lt;br /&gt;
    http.createServer(function (request, response) {&lt;br /&gt;
       response.writeHead(200, {&#039;Content-Type&#039;: &#039;text/plain&#039;});&lt;br /&gt;
       response.write(&#039;node version &#039; + process.version + &#039;\n&#039;);&lt;br /&gt;
       response.end();&lt;br /&gt;
    }).listen(3000);&lt;br /&gt;
&lt;br /&gt;
Um diese App zu deaktivieren, muss die Datei gelöscht werden.&lt;br /&gt;
Es reicht nicht aus, eine etwaige Konfiguration aus der .htaccess zu entfernen.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Installationen ===&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;quot;Node Package Manager&amp;quot; npm läßt sich weitere Software in die Node-Umgebung installieren:&lt;br /&gt;
&lt;br /&gt;
    $ npm install -g gulp&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Hsh-michaelhoennig</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=NodeJS&amp;diff=4532</id>
		<title>NodeJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=NodeJS&amp;diff=4532"/>
		<updated>2017-11-27T14:54:47Z</updated>

		<summary type="html">&lt;p&gt;Hsh-michaelhoennig: Überschriftenstruktur verbessert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Eigene NodeJS Installation ==&lt;br /&gt;
&lt;br /&gt;
Die JavaScript-Umgebung NodeJS für das Ausführen von JavaScript auf dem Server unterliegt noch einer rasanten Entwicklung.&lt;br /&gt;
Daher ist die Debian-Version, die bei Hostsharing vorinstalliert ist, oft zu alt für aktuelle Software.&lt;br /&gt;
&lt;br /&gt;
Ein kurze Anleitung für die eigene NodeJS-Installation für einen User.&lt;br /&gt;
&lt;br /&gt;
=== Installation von nvm ===&lt;br /&gt;
&lt;br /&gt;
Heute ist die Version v0.33.6  aktuell, siehe auch https://github.com/creationix/nvm/releases&lt;br /&gt;
&lt;br /&gt;
    $ touch ~/.profile&lt;br /&gt;
    $ chmod u+x ~/.profile&lt;br /&gt;
    $ cd /tmp&lt;br /&gt;
    $ wget https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh&lt;br /&gt;
    $ chmod u+x install.sh &lt;br /&gt;
    $ ./install.sh &lt;br /&gt;
&lt;br /&gt;
An dieser Stelle ab- und wieder anmelden oder die Befehle ausführen:&lt;br /&gt;
&lt;br /&gt;
    $ export NVM_DIR=&amp;quot;/home/pacs/xyz00/users/example/.nvm&amp;quot;&lt;br /&gt;
    $ [ -s &amp;quot;$NVM_DIR/nvm.sh&amp;quot; ] &amp;amp;&amp;amp; \. &amp;quot;$NVM_DIR/nvm.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Bitte auf die bei der Installation ausgegebenen Zeilen am Ende achten, &lt;br /&gt;
denn neuere nvm-Versionen benötigen ggf. etwas andere Schritte zur sofortigen Aktivierung.&lt;br /&gt;
&lt;br /&gt;
=== Installation von NodeJS ===&lt;br /&gt;
&lt;br /&gt;
Zunächst prüfen, ob ein 32bit oder 64bit Linux auf dem jeweiligen Hostsharing-Host installiert ist:&lt;br /&gt;
&lt;br /&gt;
    dpkg --print-architecture&lt;br /&gt;
&lt;br /&gt;
==== Binärinstallation ====&lt;br /&gt;
&lt;br /&gt;
Diese Variante funktioniert  bei Hostsharing nur auf amd64 Systemen (64bit Linux auf 64bit CPU).&lt;br /&gt;
&lt;br /&gt;
    $ nvm install 4&lt;br /&gt;
    $ nvm alias default 4&lt;br /&gt;
&lt;br /&gt;
installiert (zum Beispiel) sehr einfach NodeJS in der Version 4.8.6 (27.11.2017).&lt;br /&gt;
&lt;br /&gt;
analog für die Version 6.x:&lt;br /&gt;
&lt;br /&gt;
    $ nvm install 6&lt;br /&gt;
    $ nvm alias default 6&lt;br /&gt;
&lt;br /&gt;
==== Soucecode-basierte Installation auf einem 32bit Linux ====&lt;br /&gt;
&lt;br /&gt;
Diese Variante funktioniert sowohl auf amd64 als auch auf i386 Systemen (32bit Linux auf 64bit CPU).&lt;br /&gt;
&lt;br /&gt;
    $ nvm install -s 8.9.1 --dest-cpu=ia32&lt;br /&gt;
    $ nvm alias default 8.9.1&lt;br /&gt;
&lt;br /&gt;
Die Sourcecode-basierte Installation benötigt temporär sehr viel Speicherplatz und bis zu 1 Stunde für Downloads und Kompilation.&lt;br /&gt;
Der Speicherplatz kann nach Fertigstellung wieder freigegeben werden, z.B.:&lt;br /&gt;
&lt;br /&gt;
    $ rm -r ~/.node  ~/.nvm/.cache/src/node-v8.9.1&lt;br /&gt;
&lt;br /&gt;
==== Überprüfung der Installation ====&lt;br /&gt;
&lt;br /&gt;
Der Befehl&lt;br /&gt;
&lt;br /&gt;
    $ node -v&lt;br /&gt;
&lt;br /&gt;
gibt die Version des aktiven NodeJS aus.&lt;br /&gt;
&lt;br /&gt;
=== NodeJS Web-Applikation ===&lt;br /&gt;
&lt;br /&gt;
Zur Integration der eigenen NodeJS-Installation in den Apache erfolgt über das  Apache-Modul &amp;quot;Passenger&amp;quot;.&lt;br /&gt;
Vor der Nutzung dieses Moduls bitte unbedingt die 	&lt;br /&gt;
[[Phusion Passenger|Hinweise zur Nutzung beachten]].&lt;br /&gt;
&lt;br /&gt;
Den Pfad zum node-Binärprogramm konfiguriert man in einer &amp;quot;.htaccess&amp;quot;-Datei im&lt;br /&gt;
Verzeichnis der Domain &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/.htaccess&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
    PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v4.8.6/bin/node&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
    PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v6.12.0/bin/node&lt;br /&gt;
&lt;br /&gt;
Zum Testen kann man eine &amp;quot;app.js&amp;quot; ins Verzeichnis &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/app-ssl/&amp;quot; &lt;br /&gt;
ablegen.&lt;br /&gt;
&lt;br /&gt;
Eine minimale &amp;quot;app.js&amp;quot; zur Anzeige der NodeJS Version:&lt;br /&gt;
&lt;br /&gt;
    var http = require(&amp;quot;http&amp;quot;);&lt;br /&gt;
    http.createServer(function (request, response) {&lt;br /&gt;
       response.writeHead(200, {&#039;Content-Type&#039;: &#039;text/plain&#039;});&lt;br /&gt;
       response.write(&#039;node version &#039; + process.version + &#039;\n&#039;);&lt;br /&gt;
       response.end();&lt;br /&gt;
    }).listen(3000);&lt;br /&gt;
&lt;br /&gt;
Um diese App zu deaktivieren, muss die Datei gelöscht werden.&lt;br /&gt;
Es reicht nicht aus, eine etwaige Konfiguration aus der .htaccess zu entfernen.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Installationen ===&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;quot;Node Package Manager&amp;quot; npm läßt sich weitere Software in die Node-Umgebung installieren:&lt;br /&gt;
&lt;br /&gt;
    $ npm install -g gulp&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Hsh-michaelhoennig</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Phusion_Passenger&amp;diff=4531</id>
		<title>Phusion Passenger</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Phusion_Passenger&amp;diff=4531"/>
		<updated>2017-11-27T14:41:02Z</updated>

		<summary type="html">&lt;p&gt;Hsh-michaelhoennig: /* Konfiguriation /  .htaccess */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Phusion Passenger ist ein Apache-Plugin zur Integration von Apps auf Domain (vhost) Ebene.&lt;br /&gt;
Dabei kann es sich z.B. um [[NodeJS]], [[Etherpad installieren|Etherpad]], [[RubyOnRails]] und weiteren Laufzeitumgebungen handeln.&lt;br /&gt;
&lt;br /&gt;
== Aktivierung / Deaktivierung ==&lt;br /&gt;
&lt;br /&gt;
Sobald im Verzeichnis app bzw. app-ssl unter der aufgeschalteten Domain eine App existiert,&lt;br /&gt;
wird dies von Phusion Passenger ausgefürt&lt;br /&gt;
&lt;br /&gt;
Phusion Passenger ist immer für die gesamte aufgeschaltete Domain aktiviert,&lt;br /&gt;
die Bereitstellung einer App wirkt also auch auf Subdomains im Verzerichnis &#039;subs&#039;.&lt;br /&gt;
Insbesondere wird damit PHP für die jeweilige Domain deaktiviert.&lt;br /&gt;
Statischen Dateien (z.B. index.html) aus htdocs* und subs* sind davon nicht betroffen.&lt;br /&gt;
Idealerweise wird daher für jede App eine eigene Subdomain mit HSAdmin aufgeschaltet.&lt;br /&gt;
&lt;br /&gt;
Sobald eine App einmal geladen ist, sind die Settings und Mappings Bestandteil der transienten Apache vhost-Konfiguration. &lt;br /&gt;
Änderungen an .htaccess-Settings bzgl. Passenger kommen dann nicht mehr direkt zum Tragen, &lt;br /&gt;
weil die .htaccess zu Gunsten der Effizienz dann nicht mehr ausgewertet wird.&lt;br /&gt;
&lt;br /&gt;
Zum deaktivieren einer App muss diese im app und app-ssl Verzeichnis geslöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Konfiguriation /  .htaccess ==&lt;br /&gt;
&lt;br /&gt;
Das Plugin ist zwar unabhängig von Einträgen in der .htaccess aktiv,&lt;br /&gt;
kann aber über die .htaccess Datei im jeweiligen Domain-Verzeichnis konfiguriert werden,&lt;br /&gt;
z.B. in &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/.htaccess&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
    PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v6.11.2/bin/node&lt;br /&gt;
&lt;br /&gt;
(Nähere Informationen bitte den jeweiligen Wiki-Seiten über die spezifischen Laufzeitumgebungen entnehmen.)&lt;br /&gt;
&lt;br /&gt;
== Neueinlesen der Konfiguration / Restart der App ==&lt;br /&gt;
&lt;br /&gt;
Passenger Apps werden wir folgt neu gestartet oder neu geladen:&lt;br /&gt;
	&lt;br /&gt;
    mkdir app(-ssl)/tmp&lt;br /&gt;
    touch app(-ssl)/tmp/restart.txt&lt;br /&gt;
&lt;br /&gt;
Das führt nach einer Weile zu einem graceful Restart der App. &lt;br /&gt;
D.h. die einzelnen Prozesse werden sukzessive zwischen der Bedienung von HTTP-Requests neu gestartet. &lt;br /&gt;
Im Rahmen dieses Restarts sollten geänderte .htaccess Direktiven Wirkung entfalten. &lt;br /&gt;
Entsprechendes gilt für Änderungen an der Applikation selbst.&lt;/div&gt;</summary>
		<author><name>Hsh-michaelhoennig</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=NodeJS&amp;diff=4530</id>
		<title>NodeJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=NodeJS&amp;diff=4530"/>
		<updated>2017-11-27T14:35:14Z</updated>

		<summary type="html">&lt;p&gt;Hsh-michaelhoennig: /* Installation von NodeJS */ Sourcecode-Installation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Eigene NodeJS Installation ==&lt;br /&gt;
&lt;br /&gt;
Die JavaScript-Umgebung NodeJS für das Ausführen von JavaScript auf dem Server unterliegt noch einer rasanten Entwicklung.&lt;br /&gt;
Daher ist die Debian-Version, die bei Hostsharing vorinstalliert ist, oft zu alt für aktuelle Software.&lt;br /&gt;
&lt;br /&gt;
Ein kurze Anleitung für die eigene NodeJS-Installation für einen User.&lt;br /&gt;
&lt;br /&gt;
=== Installation von nvm ===&lt;br /&gt;
&lt;br /&gt;
Heute ist die Version v0.33.6  aktuell, siehe auch https://github.com/creationix/nvm/releases&lt;br /&gt;
&lt;br /&gt;
    $ touch ~/.profile&lt;br /&gt;
    $ chmod u+x ~/.profile&lt;br /&gt;
    $ cd /tmp&lt;br /&gt;
    $ wget https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh&lt;br /&gt;
    $ chmod u+x install.sh &lt;br /&gt;
    $ ./install.sh &lt;br /&gt;
&lt;br /&gt;
An dieser Stelle ab- und wieder anmelden oder die Befehle ausführen:&lt;br /&gt;
&lt;br /&gt;
    $ export NVM_DIR=&amp;quot;/home/pacs/xyz00/users/example/.nvm&amp;quot;&lt;br /&gt;
    $ [ -s &amp;quot;$NVM_DIR/nvm.sh&amp;quot; ] &amp;amp;&amp;amp; \. &amp;quot;$NVM_DIR/nvm.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Bitte auf die bei der Installation ausgegebenen Zeilen am Ende achten, &lt;br /&gt;
denn neuere nvm-Versionen benötigen ggf. etwas andere Schritte zur sofortigen Aktivierung.&lt;br /&gt;
&lt;br /&gt;
=== Installation von NodeJS ===&lt;br /&gt;
&lt;br /&gt;
Zunächst prüfen, ob ein 32bit oder 64bit Linux auf dem jeweiligen Hostsharing-Host installiert ist:&lt;br /&gt;
&lt;br /&gt;
    dpkg --print-architecture&lt;br /&gt;
&lt;br /&gt;
=== i386 ===&lt;br /&gt;
&lt;br /&gt;
Es sind nur Sourcecode-basierte Installationen möglich, weil nvm offensichtlich nur die 64bit CPU sieht, nicht aber, dass nur ein 32bit Linux läuft.&lt;br /&gt;
&lt;br /&gt;
=== amd64 ===&lt;br /&gt;
&lt;br /&gt;
Es können auch Binärinstallationen (vorkompiliertes Node) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=== Binärinstallation ===&lt;br /&gt;
&lt;br /&gt;
    $ nvm install 4&lt;br /&gt;
    $ nvm alias default 4&lt;br /&gt;
&lt;br /&gt;
installiert (zum Beispiel) sehr einfach NodeJS in der Version 4.8.6 (27.11.2017).&lt;br /&gt;
&lt;br /&gt;
analog für die Version 6.x:&lt;br /&gt;
&lt;br /&gt;
    $ nvm install 6&lt;br /&gt;
    $ nvm alias default 6&lt;br /&gt;
&lt;br /&gt;
=== Soucecode-basierte Installation auf einem 32bit Linux ===&lt;br /&gt;
&lt;br /&gt;
    $ nvm install -s 8.9.1 --dest-cpu=ia32&lt;br /&gt;
    $ nvm alias default 8.9.1&lt;br /&gt;
&lt;br /&gt;
Die Sourcecode-basierte Installation benötigt temporär sehr viel Speicherplatz und bis zu 1 Stunde für Downloads und Kompilation.&lt;br /&gt;
Der Speicherplatz kann nach Fertigstellung wieder freigegeben werden, z.B.:&lt;br /&gt;
&lt;br /&gt;
    $ rm -r ~/.node  ~/.nvm/.cache/src/node-v8.9.1&lt;br /&gt;
&lt;br /&gt;
=== Sonstiges ===&lt;br /&gt;
&lt;br /&gt;
Der Befehl&lt;br /&gt;
&lt;br /&gt;
    $ node -v&lt;br /&gt;
&lt;br /&gt;
gibt die Version des aktiven NodeJS aus.&lt;br /&gt;
&lt;br /&gt;
=== NodeJS Web-Applikation ===&lt;br /&gt;
&lt;br /&gt;
Zur Integration der eigenen NodeJS-Installation in den Apache erfolgt über das  Apache-Modul &amp;quot;Passenger&amp;quot;.&lt;br /&gt;
Vor der Nutzung dieses Moduls bitte unbedingt die 	&lt;br /&gt;
[[Phusion Passenger|Hinweise zur Nutzung beachten]].&lt;br /&gt;
&lt;br /&gt;
Den Pfad zum node-Binärprogramm konfiguriert man in einer &amp;quot;.htaccess&amp;quot;-Datei im&lt;br /&gt;
Verzeichnis der Domain &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/.htaccess&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
    PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v4.8.6/bin/node&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
    PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v6.12.0/bin/node&lt;br /&gt;
&lt;br /&gt;
Zum Testen kann man eine &amp;quot;app.js&amp;quot; ins Verzeichnis &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/app-ssl/&amp;quot; &lt;br /&gt;
ablegen.&lt;br /&gt;
&lt;br /&gt;
Eine minimale &amp;quot;app.js&amp;quot; zur Anzeige der NodeJS Version:&lt;br /&gt;
&lt;br /&gt;
    var http = require(&amp;quot;http&amp;quot;);&lt;br /&gt;
    http.createServer(function (request, response) {&lt;br /&gt;
       response.writeHead(200, {&#039;Content-Type&#039;: &#039;text/plain&#039;});&lt;br /&gt;
       response.write(&#039;node version &#039; + process.version + &#039;\n&#039;);&lt;br /&gt;
       response.end();&lt;br /&gt;
    }).listen(3000);&lt;br /&gt;
&lt;br /&gt;
Um diese App zu deaktivieren, muss die Datei gelöscht werden.&lt;br /&gt;
Es reicht nicht aus, eine etwaige Konfiguration aus der .htaccess zu entfernen.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Installationen ===&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;quot;Node Package Manager&amp;quot; npm läßt sich weitere Software in die Node-Umgebung installieren:&lt;br /&gt;
&lt;br /&gt;
    $ npm install -g gulp&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Hsh-michaelhoennig</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=NodeJS&amp;diff=4529</id>
		<title>NodeJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=NodeJS&amp;diff=4529"/>
		<updated>2017-11-27T14:23:03Z</updated>

		<summary type="html">&lt;p&gt;Hsh-michaelhoennig: /* Installation von nvm */ sofortige Aktivierung bei neueren nvm Versionen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Eigene NodeJS Installation ==&lt;br /&gt;
&lt;br /&gt;
Die JavaScript-Umgebung NodeJS für das Ausführen von JavaScript auf dem Server unterliegt noch einer rasanten Entwicklung.&lt;br /&gt;
Daher ist die Debian-Version, die bei Hostsharing vorinstalliert ist, oft zu alt für aktuelle Software.&lt;br /&gt;
&lt;br /&gt;
Ein kurze Anleitung für die eigene NodeJS-Installation für einen User.&lt;br /&gt;
&lt;br /&gt;
=== Installation von nvm ===&lt;br /&gt;
&lt;br /&gt;
Heute ist die Version v0.33.6  aktuell, siehe auch https://github.com/creationix/nvm/releases&lt;br /&gt;
&lt;br /&gt;
    $ touch ~/.profile&lt;br /&gt;
    $ chmod u+x ~/.profile&lt;br /&gt;
    $ cd /tmp&lt;br /&gt;
    $ wget https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh&lt;br /&gt;
    $ chmod u+x install.sh &lt;br /&gt;
    $ ./install.sh &lt;br /&gt;
&lt;br /&gt;
An dieser Stelle ab- und wieder anmelden oder die Befehle ausführen:&lt;br /&gt;
&lt;br /&gt;
    $ export NVM_DIR=&amp;quot;/home/pacs/xyz00/users/example/.nvm&amp;quot;&lt;br /&gt;
    $ [ -s &amp;quot;$NVM_DIR/nvm.sh&amp;quot; ] &amp;amp;&amp;amp; \. &amp;quot;$NVM_DIR/nvm.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Bitte auf die bei der Installation ausgegebenen Zeilen am Ende achten, &lt;br /&gt;
denn neuere nvm-Versionen benötigen ggf. etwas andere Schritte zur sofortigen Aktivierung.&lt;br /&gt;
&lt;br /&gt;
=== Installation von NodeJS ===&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl&lt;br /&gt;
&lt;br /&gt;
    $ nvm install 4&lt;br /&gt;
    $ nvm alias default 4&lt;br /&gt;
&lt;br /&gt;
läßt sich (zum Beispiel) sehr einfach NodeJS in der Version 4.8.6 (27.11.2017) installieren.&lt;br /&gt;
&lt;br /&gt;
analog für die Version 6.x&lt;br /&gt;
&lt;br /&gt;
    $ nvm install 6&lt;br /&gt;
    $ nvm alias default 6&lt;br /&gt;
&lt;br /&gt;
oder 8.x&lt;br /&gt;
&lt;br /&gt;
    $ nvm install 8&lt;br /&gt;
    $ nvm alias default 8&lt;br /&gt;
&lt;br /&gt;
Der Befehl&lt;br /&gt;
&lt;br /&gt;
    $ node -v&lt;br /&gt;
&lt;br /&gt;
gibt die Version von NodeJS aus.&lt;br /&gt;
&lt;br /&gt;
=== NodeJS Web-Applikation ===&lt;br /&gt;
&lt;br /&gt;
Zur Integration der eigenen NodeJS-Installation in den Apache erfolgt über das  Apache-Modul &amp;quot;Passenger&amp;quot;.&lt;br /&gt;
Vor der Nutzung dieses Moduls bitte unbedingt die 	&lt;br /&gt;
[[Phusion Passenger|Hinweise zur Nutzung beachten]].&lt;br /&gt;
&lt;br /&gt;
Den Pfad zum node-Binärprogramm konfiguriert man in einer &amp;quot;.htaccess&amp;quot;-Datei im&lt;br /&gt;
Verzeichnis der Domain &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/.htaccess&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
    PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v4.8.6/bin/node&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
    PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v6.12.0/bin/node&lt;br /&gt;
&lt;br /&gt;
Zum Testen kann man eine &amp;quot;app.js&amp;quot; ins Verzeichnis &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/app-ssl/&amp;quot; &lt;br /&gt;
ablegen.&lt;br /&gt;
&lt;br /&gt;
Eine minimale &amp;quot;app.js&amp;quot; zur Anzeige der NodeJS Version:&lt;br /&gt;
&lt;br /&gt;
    var http = require(&amp;quot;http&amp;quot;);&lt;br /&gt;
    http.createServer(function (request, response) {&lt;br /&gt;
       response.writeHead(200, {&#039;Content-Type&#039;: &#039;text/plain&#039;});&lt;br /&gt;
       response.write(&#039;node version &#039; + process.version + &#039;\n&#039;);&lt;br /&gt;
       response.end();&lt;br /&gt;
    }).listen(3000);&lt;br /&gt;
&lt;br /&gt;
Um diese App zu deaktivieren, muss die Datei gelöscht werden.&lt;br /&gt;
Es reicht nicht aus, eine etwaige Konfiguration aus der .htaccess zu entfernen.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Installationen ===&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;quot;Node Package Manager&amp;quot; npm läßt sich weitere Software in die Node-Umgebung installieren:&lt;br /&gt;
&lt;br /&gt;
    $ npm install -g gulp&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Hsh-michaelhoennig</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Phusion_Passenger&amp;diff=4527</id>
		<title>Phusion Passenger</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Phusion_Passenger&amp;diff=4527"/>
		<updated>2017-11-27T14:09:47Z</updated>

		<summary type="html">&lt;p&gt;Hsh-michaelhoennig: /* Konfiguriation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Phusion Passenger ist ein Apache-Plugin zur Integration von Apps auf Domain (vhost) Ebene.&lt;br /&gt;
Dabei kann es sich z.B. um [[NodeJS]], [[Etherpad installieren|Etherpad]], [[RubyOnRails]] und weiteren Laufzeitumgebungen handeln.&lt;br /&gt;
&lt;br /&gt;
== Aktivierung / Deaktivierung ==&lt;br /&gt;
&lt;br /&gt;
Sobald im Verzeichnis app bzw. app-ssl unter der aufgeschalteten Domain eine App existiert,&lt;br /&gt;
wird dies von Phusion Passenger ausgefürt&lt;br /&gt;
&lt;br /&gt;
Phusion Passenger ist immer für die gesamte aufgeschaltete Domain aktiviert,&lt;br /&gt;
die Bereitstellung einer App wirkt also auch auf Subdomains im Verzerichnis &#039;subs&#039;.&lt;br /&gt;
Insbesondere wird damit PHP für die jeweilige Domain deaktiviert.&lt;br /&gt;
Statischen Dateien (z.B. index.html) aus htdocs* und subs* sind davon nicht betroffen.&lt;br /&gt;
Idealerweise wird daher für jede App eine eigene Subdomain mit HSAdmin aufgeschaltet.&lt;br /&gt;
&lt;br /&gt;
Sobald eine App einmal geladen ist, sind die Settings und Mappings Bestandteil der transienten Apache vhost-Konfiguration. &lt;br /&gt;
Änderungen an .htaccess-Settings bzgl. Passenger kommen dann nicht mehr direkt zum Tragen, &lt;br /&gt;
weil die .htaccess zu Gunsten der Effizienz dann nicht mehr ausgewertet wird.&lt;br /&gt;
&lt;br /&gt;
Zum deaktivieren einer App muss diese im app und app-ssl Verzeichnis geslöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Konfiguriation /  .htaccess ==&lt;br /&gt;
&lt;br /&gt;
Das Plugin ist zwar unabhängig von Einträgen in der .htaccess aktiv,&lt;br /&gt;
 kann aber über die .htaccess Datei im jeweiligen Domain-Verzeichnis konfiguriert werden,&lt;br /&gt;
z.B. in &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/.htaccess&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
    PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v6.11.2/bin/node&lt;br /&gt;
&lt;br /&gt;
(Nähere Informationen bitte den jeweiligen Wiki-Seiten über die spezifischen Laufzeitumgebungen entnehmen.)&lt;br /&gt;
&lt;br /&gt;
== Neueinlesen der Konfiguration / Restart der App ==&lt;br /&gt;
&lt;br /&gt;
Passenger Apps werden wir folgt neu gestartet oder neu geladen:&lt;br /&gt;
	&lt;br /&gt;
    mkdir app(-ssl)/tmp&lt;br /&gt;
    touch app(-ssl)/tmp/restart.txt&lt;br /&gt;
&lt;br /&gt;
Das führt nach einer Weile zu einem graceful Restart der App. &lt;br /&gt;
D.h. die einzelnen Prozesse werden sukzessive zwischen der Bedienung von HTTP-Requests neu gestartet. &lt;br /&gt;
Im Rahmen dieses Restarts sollten geänderte .htaccess Direktiven Wirkung entfalten. &lt;br /&gt;
Entsprechendes gilt für Änderungen an der Applikation selbst.&lt;/div&gt;</summary>
		<author><name>Hsh-michaelhoennig</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Phusion_Passenger&amp;diff=4526</id>
		<title>Phusion Passenger</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Phusion_Passenger&amp;diff=4526"/>
		<updated>2017-11-27T14:09:38Z</updated>

		<summary type="html">&lt;p&gt;Hsh-michaelhoennig: /* Aktivierung / .htaccess */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Phusion Passenger ist ein Apache-Plugin zur Integration von Apps auf Domain (vhost) Ebene.&lt;br /&gt;
Dabei kann es sich z.B. um [[NodeJS]], [[Etherpad installieren|Etherpad]], [[RubyOnRails]] und weiteren Laufzeitumgebungen handeln.&lt;br /&gt;
&lt;br /&gt;
== Aktivierung / Deaktivierung ==&lt;br /&gt;
&lt;br /&gt;
Sobald im Verzeichnis app bzw. app-ssl unter der aufgeschalteten Domain eine App existiert,&lt;br /&gt;
wird dies von Phusion Passenger ausgefürt&lt;br /&gt;
&lt;br /&gt;
Phusion Passenger ist immer für die gesamte aufgeschaltete Domain aktiviert,&lt;br /&gt;
die Bereitstellung einer App wirkt also auch auf Subdomains im Verzerichnis &#039;subs&#039;.&lt;br /&gt;
Insbesondere wird damit PHP für die jeweilige Domain deaktiviert.&lt;br /&gt;
Statischen Dateien (z.B. index.html) aus htdocs* und subs* sind davon nicht betroffen.&lt;br /&gt;
Idealerweise wird daher für jede App eine eigene Subdomain mit HSAdmin aufgeschaltet.&lt;br /&gt;
&lt;br /&gt;
Sobald eine App einmal geladen ist, sind die Settings und Mappings Bestandteil der transienten Apache vhost-Konfiguration. &lt;br /&gt;
Änderungen an .htaccess-Settings bzgl. Passenger kommen dann nicht mehr direkt zum Tragen, &lt;br /&gt;
weil die .htaccess zu Gunsten der Effizienz dann nicht mehr ausgewertet wird.&lt;br /&gt;
&lt;br /&gt;
Zum deaktivieren einer App muss diese im app und app-ssl Verzeichnis geslöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Konfiguriation ==&lt;br /&gt;
&lt;br /&gt;
Das Plugin ist zwar unabhängig von Einträgen in der .htaccess aktiv,&lt;br /&gt;
 kann aber über die .htaccess Datei im jeweiligen Domain-Verzeichnis konfiguriert werden,&lt;br /&gt;
z.B. in &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/.htaccess&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
    PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v6.11.2/bin/node&lt;br /&gt;
&lt;br /&gt;
(Nähere Informationen bitte den jeweiligen Wiki-Seiten über die spezifischen Laufzeitumgebungen entnehmen.)&lt;br /&gt;
&lt;br /&gt;
== Neueinlesen der Konfiguration / Restart der App ==&lt;br /&gt;
&lt;br /&gt;
Passenger Apps werden wir folgt neu gestartet oder neu geladen:&lt;br /&gt;
	&lt;br /&gt;
    mkdir app(-ssl)/tmp&lt;br /&gt;
    touch app(-ssl)/tmp/restart.txt&lt;br /&gt;
&lt;br /&gt;
Das führt nach einer Weile zu einem graceful Restart der App. &lt;br /&gt;
D.h. die einzelnen Prozesse werden sukzessive zwischen der Bedienung von HTTP-Requests neu gestartet. &lt;br /&gt;
Im Rahmen dieses Restarts sollten geänderte .htaccess Direktiven Wirkung entfalten. &lt;br /&gt;
Entsprechendes gilt für Änderungen an der Applikation selbst.&lt;/div&gt;</summary>
		<author><name>Hsh-michaelhoennig</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Phusion_Passenger&amp;diff=4525</id>
		<title>Phusion Passenger</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Phusion_Passenger&amp;diff=4525"/>
		<updated>2017-11-27T14:09:13Z</updated>

		<summary type="html">&lt;p&gt;Hsh-michaelhoennig: Korrektur bzgl. Aktivierung von Phusion Passenger&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Phusion Passenger ist ein Apache-Plugin zur Integration von Apps auf Domain (vhost) Ebene.&lt;br /&gt;
Dabei kann es sich z.B. um [[NodeJS]], [[Etherpad installieren|Etherpad]], [[RubyOnRails]] und weiteren Laufzeitumgebungen handeln.&lt;br /&gt;
&lt;br /&gt;
== Aktivierung / .htaccess ==&lt;br /&gt;
&lt;br /&gt;
Sobald im Verzeichnis app bzw. app-ssl unter der aufgeschalteten Domain eine App existiert,&lt;br /&gt;
wird dies von Phusion Passenger ausgefürt&lt;br /&gt;
&lt;br /&gt;
Phusion Passenger ist immer für die gesamte aufgeschaltete Domain aktiviert,&lt;br /&gt;
die Bereitstellung einer App wirkt also auch auf Subdomains im Verzerichnis &#039;subs&#039;.&lt;br /&gt;
Insbesondere wird damit PHP für die jeweilige Domain deaktiviert.&lt;br /&gt;
Statischen Dateien (z.B. index.html) aus htdocs* und subs* sind davon nicht betroffen.&lt;br /&gt;
Idealerweise wird daher für jede App eine eigene Subdomain mit HSAdmin aufgeschaltet.&lt;br /&gt;
&lt;br /&gt;
Sobald eine App einmal geladen ist, sind die Settings und Mappings Bestandteil der transienten Apache vhost-Konfiguration. &lt;br /&gt;
Änderungen an .htaccess-Settings bzgl. Passenger kommen dann nicht mehr direkt zum Tragen, &lt;br /&gt;
weil die .htaccess zu Gunsten der Effizienz dann nicht mehr ausgewertet wird.&lt;br /&gt;
&lt;br /&gt;
Zum deaktivieren einer App muss diese im app und app-ssl Verzeichnis geslöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Konfiguriation ==&lt;br /&gt;
&lt;br /&gt;
Das Plugin ist zwar unabhängig von Einträgen in der .htaccess aktiv,&lt;br /&gt;
 kann aber über die .htaccess Datei im jeweiligen Domain-Verzeichnis konfiguriert werden,&lt;br /&gt;
z.B. in &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/.htaccess&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
    PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v6.11.2/bin/node&lt;br /&gt;
&lt;br /&gt;
(Nähere Informationen bitte den jeweiligen Wiki-Seiten über die spezifischen Laufzeitumgebungen entnehmen.)&lt;br /&gt;
&lt;br /&gt;
== Neueinlesen der Konfiguration / Restart der App ==&lt;br /&gt;
&lt;br /&gt;
Passenger Apps werden wir folgt neu gestartet oder neu geladen:&lt;br /&gt;
	&lt;br /&gt;
    mkdir app(-ssl)/tmp&lt;br /&gt;
    touch app(-ssl)/tmp/restart.txt&lt;br /&gt;
&lt;br /&gt;
Das führt nach einer Weile zu einem graceful Restart der App. &lt;br /&gt;
D.h. die einzelnen Prozesse werden sukzessive zwischen der Bedienung von HTTP-Requests neu gestartet. &lt;br /&gt;
Im Rahmen dieses Restarts sollten geänderte .htaccess Direktiven Wirkung entfalten. &lt;br /&gt;
Entsprechendes gilt für Änderungen an der Applikation selbst.&lt;/div&gt;</summary>
		<author><name>Hsh-michaelhoennig</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=NodeJS&amp;diff=4524</id>
		<title>NodeJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=NodeJS&amp;diff=4524"/>
		<updated>2017-11-27T14:02:48Z</updated>

		<summary type="html">&lt;p&gt;Hsh-michaelhoennig: /* NodeJS Web-Applikation */ Hinweis: zum app deaktivieren: löschen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Eigene NodeJS Installation ==&lt;br /&gt;
&lt;br /&gt;
Die JavaScript-Umgebung NodeJS für das Ausführen von JavaScript auf dem Server unterliegt noch einer rasanten Entwicklung.&lt;br /&gt;
Daher ist die Debian-Version, die bei Hostsharing vorinstalliert ist, oft zu alt für aktuelle Software.&lt;br /&gt;
&lt;br /&gt;
Ein kurze Anleitung für die eigene NodeJS-Installation für einen User.&lt;br /&gt;
&lt;br /&gt;
=== Installation von nvm ===&lt;br /&gt;
&lt;br /&gt;
Heute ist die Version v0.33.2  aktuell, siehe auch https://github.com/creationix/nvm/releases&lt;br /&gt;
&lt;br /&gt;
    $ touch ~/.profile&lt;br /&gt;
    $ chmod u+x ~/.profile&lt;br /&gt;
    $ cd /tmp&lt;br /&gt;
    $ wget https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh&lt;br /&gt;
    $ chmod u+x install.sh &lt;br /&gt;
    $ ./install.sh &lt;br /&gt;
&lt;br /&gt;
An dieser Stelle ab- und wieder anmelden oder die Befehle ausführen:&lt;br /&gt;
&lt;br /&gt;
    $ export NVM_DIR=&amp;quot;/home/pacs/xyz00/users/example/.nvm&amp;quot;&lt;br /&gt;
    $ [ -s &amp;quot;$NVM_DIR/nvm.sh&amp;quot; ] &amp;amp;&amp;amp; \. &amp;quot;$NVM_DIR/nvm.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Installation von NodeJS ===&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl&lt;br /&gt;
&lt;br /&gt;
    $ nvm install 4.8.4&lt;br /&gt;
    $ nvm alias default 4.8.4&lt;br /&gt;
&lt;br /&gt;
läßt sich (zum Beispiel) sehr einfach NodeJS in der Version 4.8.4 installieren.&lt;br /&gt;
&lt;br /&gt;
analog für die Version 6.11.x&lt;br /&gt;
&lt;br /&gt;
    $ nvm install 6.11.2&lt;br /&gt;
    $ nvm alias default 6.11.2&lt;br /&gt;
&lt;br /&gt;
Der Befehl&lt;br /&gt;
&lt;br /&gt;
    $ node -v&lt;br /&gt;
&lt;br /&gt;
gibt die Version von NodeJS aus.&lt;br /&gt;
&lt;br /&gt;
=== NodeJS Web-Applikation ===&lt;br /&gt;
&lt;br /&gt;
Zur Integration der eigenen NodeJS-Installation in den Apache erfolgt über das  Apache-Modul &amp;quot;Passenger&amp;quot;.&lt;br /&gt;
Vor der Nutzung dieses Moduls bitte unbedingt die 	&lt;br /&gt;
[[Phusion Passenger|Hinweise zur Nutzung beachten]].&lt;br /&gt;
&lt;br /&gt;
Den Pfad zum node-Binärprogramm konfiguriert man in einer &amp;quot;.htaccess&amp;quot;-Datei im&lt;br /&gt;
Verzeichnis der Domain &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/.htaccess&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
    PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v4.8.4/bin/node&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
    PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v6.11.2/bin/node&lt;br /&gt;
&lt;br /&gt;
Zum Testen kann man eine &amp;quot;app.js&amp;quot; ins Verzeichnis &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/app-ssl/&amp;quot; &lt;br /&gt;
ablegen.&lt;br /&gt;
&lt;br /&gt;
Eine minimale &amp;quot;app.js&amp;quot; zur Anzeige der NodeJS Version:&lt;br /&gt;
&lt;br /&gt;
    var http = require(&amp;quot;http&amp;quot;);&lt;br /&gt;
    http.createServer(function (request, response) {&lt;br /&gt;
       response.writeHead(200, {&#039;Content-Type&#039;: &#039;text/plain&#039;});&lt;br /&gt;
       response.write(&#039;node version &#039; + process.version + &#039;\n&#039;);&lt;br /&gt;
       response.end();&lt;br /&gt;
    }).listen(3000);&lt;br /&gt;
&lt;br /&gt;
Um diese App zu deaktivieren, muss die Datei gelöscht werden.&lt;br /&gt;
Es reicht nicht aus, eine etwaige Konfiguration aus der .htaccess zu entfernen.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Installationen ===&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;quot;Node Package Manager&amp;quot; npm läßt sich weitere Software in die Node-Umgebung installieren:&lt;br /&gt;
&lt;br /&gt;
    $ npm install -g gulp&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Hsh-michaelhoennig</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=RadicaleCalDAVServer&amp;diff=4522</id>
		<title>RadicaleCalDAVServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=RadicaleCalDAVServer&amp;diff=4522"/>
		<updated>2017-11-27T08:25:52Z</updated>

		<summary type="html">&lt;p&gt;Hsh-michaelhoennig: /* Passenger Konfiguration */ Phusuon Passenger Link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Radicale CalDAV Server =&lt;br /&gt;
&lt;br /&gt;
[http://de.wikipedia.org/wiki/CalDAV CalDAV] ist eine Erweiterung des WebDAV- (und damit des HTTP-) Protokolls, um Kalenderdaten (Termine und Aufgaben) auf einem Server zu speichern.&lt;br /&gt;
&lt;br /&gt;
Apple nutzt diese Protokoll für seine Clients (iCal-Anwendung und Kalender-App auf dem iPhone) und bietet einen entsprechenden Server an. Dadurch gewinnt CalDAV zunehmende Bedeutung.&lt;br /&gt;
&lt;br /&gt;
Wenn man freie Software einsetzen will, bieten sich folgende Anwendungen an:&lt;br /&gt;
* Das [http://www.mozilla.org/projects/calendar/lightning/ Lightning-Plugin] für Thunderbird (unter Linux und Windows)&lt;br /&gt;
* [https://f-droid.org/repository/browse/?fdid=org.gege.caldavsyncadapter CalDAV Sync Adapter] als Android-App zur Synchronisation des Kalenders&lt;br /&gt;
* Der [http://caldavsynchronizer.org/ CaldavSynchronizer] für Outlook &lt;br /&gt;
&lt;br /&gt;
In diesem Artikel wird die Installation eines CalDAV-Server in einem normalen Hostsharing-Paket beschrieben, als leichtgewichtigen Server nutze ich den [http://radicale.org/ Radicale CalDAV Server]. Der Server kann mit Hilfe von Passenger betrieben werden.&lt;br /&gt;
&lt;br /&gt;
In dieser Installationsanleitung wird die Installation für HTTP und HTTPS (Verzeichnisse &amp;quot;app-ssl&amp;quot; und &amp;quot;htdocs-ssl&amp;quot;) parallel vorgenommen. Ihr solltet darauf achten, den CalDAV- / Card-Server im produktiven&lt;br /&gt;
Betrieb immer nur über HTTPS (also mit SSL-/TLS_Verschlüsselung) anzusprechen. Schliesslich werden Passworte und personenbezogene Daten übertragen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitung ===&lt;br /&gt;
&lt;br /&gt;
Ich lege mit HSAdmin einen User &#039;&#039;xyz00-cal&#039;&#039; an und schalte eine Domain &#039;&#039;cal.example.org&#039;&#039; auf.&lt;br /&gt;
&lt;br /&gt;
=== Download und Installation des Paketes ===&lt;br /&gt;
&lt;br /&gt;
als User &#039;&#039;xyz00-cal&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 pip install --user radicale&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passenger Konfiguration ===&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;
Wir wechseln in das Domain-Verzeichnis &#039;&#039;~/doms/cal.example.org/&#039;&#039;.&lt;br /&gt;
Dorthin legen wir die folgende Datei an:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/doms/cal.example.org/app/passenger_wsgi.py&#039;&#039; und&lt;br /&gt;
&#039;&#039;~/doms/cal.example.org/app-ssl/passenger_wsgi.py&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
&lt;br /&gt;
import radicale&lt;br /&gt;
&lt;br /&gt;
radicale.log.start()&lt;br /&gt;
application = radicale.Application()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/doms/cal.example.org/htdocs/.htaccess&#039;&#039; und&lt;br /&gt;
&#039;&#039;~/doms/cal.example.org/htdocs-ssl/.htaccess&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AuthType Basic&lt;br /&gt;
AuthName &amp;quot;Radicale Calendar Server&amp;quot;&lt;br /&gt;
require valid-user&lt;br /&gt;
AuthUserFile /home/pacs/xyz00/users/cal/.htpasswd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es fehlt noch das Anlegen der &#039;&#039;~/.htpasswd&#039;&#039;-Datei mit den verschlüsselten Passworten der User.&lt;br /&gt;
Dazu rufen wir (für die User &#039;&#039;hans&#039;&#039; und &#039;&#039;franz&#039;&#039;) folgendes Kommando auf (&#039;&#039;htpasswd -c&#039;&#039; erzeugt die Datei):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 htpasswd -c ~/.htpasswd hans&lt;br /&gt;
 htpasswd ~/.htpasswd franz&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle sollte ein Aufruf von &#039;&#039;https://cal.example.org&#039;&#039; im Browser nach Eingabe des Passwortes für &#039;&#039;hans&#039;&#039; oder &#039;&#039;franz&#039;&#039; die folgende Seite liefern: &#039;&#039;Radicale works!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Radicale Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
Zuletzt bleibt noch die Erstellung einer Konfigurationsdatei für den Radicale-Server.&lt;br /&gt;
Ein Template für die Datei findet Ihr in &#039;&#039;~/Radicale-0.9/config&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Hier der Inhalt meiner &#039;&#039;~/.config/radicale/config&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Config file for Radicale - A simple calendar server&lt;br /&gt;
# Place it into ~/.config/radicale/config (user)&lt;br /&gt;
&lt;br /&gt;
[server]&lt;br /&gt;
base_prefix = /&lt;br /&gt;
can_skip_base_prefix = False&lt;br /&gt;
dns_lookup = False&lt;br /&gt;
&lt;br /&gt;
[encoding]&lt;br /&gt;
request = utf-8&lt;br /&gt;
stock = utf-8&lt;br /&gt;
&lt;br /&gt;
[auth]&lt;br /&gt;
type = None&lt;br /&gt;
&lt;br /&gt;
[rights]&lt;br /&gt;
type = None&lt;br /&gt;
&lt;br /&gt;
[storage]&lt;br /&gt;
type = filesystem&lt;br /&gt;
custom_handler =&lt;br /&gt;
filesystem_folder = ~/.config/radicale/collections&lt;br /&gt;
&lt;br /&gt;
[logging]&lt;br /&gt;
config = ~/.config/radicale/logging&lt;br /&gt;
debug = False&lt;br /&gt;
full_environment = False&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier der Inhalt meiner &#039;&#039;~/.config/radicale/logging&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[loggers]&lt;br /&gt;
keys = root&lt;br /&gt;
&lt;br /&gt;
[handlers]&lt;br /&gt;
keys = file&lt;br /&gt;
&lt;br /&gt;
[formatters]&lt;br /&gt;
keys = full&lt;br /&gt;
&lt;br /&gt;
[logger_root]&lt;br /&gt;
level = INFO&lt;br /&gt;
handlers = file&lt;br /&gt;
&lt;br /&gt;
[handler_file]&lt;br /&gt;
class = FileHandler&lt;br /&gt;
args = (&#039;/home/pacs/xyz00/users/cal/var/radicale.log&#039;,)&lt;br /&gt;
formatter = full&lt;br /&gt;
&lt;br /&gt;
[formatter_full]&lt;br /&gt;
format = %(asctime)s - %(levelname)s: %(message)s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nutzung der Kalender ==&lt;br /&gt;
&lt;br /&gt;
=== Zugriffsrechte ===&lt;br /&gt;
&lt;br /&gt;
Zu diesem Zeitpunkt können die User &#039;&#039;hans&#039;&#039; und &#039;&#039;franz&#039;&#039; jeweils auf alle Kalender zugreifen. In einer größeren Organisation ist das sicher nicht ausreichend.&lt;br /&gt;
&lt;br /&gt;
Im der oben beschriebenen Konfiguration überlässt man die Zugriffskontrolle am besten dem Apache-Webserver. Das kann man einfach über die bereits vorhandene &#039;&#039;.htaccess&#039;&#039;-Datei regeln:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AuthType Basic&lt;br /&gt;
AuthName &amp;quot;Radicale Calendar Server&amp;quot;&lt;br /&gt;
AuthUserFile /home/pacs/xyz00/users/cal/.htpasswd&lt;br /&gt;
&amp;lt;FilesMatch &amp;quot;^hans&amp;quot;&amp;gt;&lt;br /&gt;
require user hans&lt;br /&gt;
&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&amp;lt;FilesMatch &amp;quot;^franz&amp;quot;&amp;gt;&lt;br /&gt;
require user franz&lt;br /&gt;
&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&amp;lt;FilesMatch &amp;quot;^team&amp;quot;&amp;gt;&lt;br /&gt;
require valid-user&lt;br /&gt;
&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So können beide User jeweils eigene Kalender anlegen, z.B:&lt;br /&gt;
* /hans/privat&lt;br /&gt;
* /hans/aufgaben&lt;br /&gt;
* /franz/kalender&lt;br /&gt;
&lt;br /&gt;
Unter dem Pseudouser &#039;&#039;team&#039;&#039; können gemeinsame Kalender verwaltet werden:&lt;br /&gt;
* /team/meetings&lt;br /&gt;
* /team/seminarraum&lt;br /&gt;
&lt;br /&gt;
Mit einer zusätzlichen Datei &#039;&#039;.htgroups&#039;&#039; kann man auch komplexere Szenarien implementieren.&lt;br /&gt;
&lt;br /&gt;
=== Client Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
Ich selbst verwende das Lightning-Plugin zu Thunderbird und aCal als Android-App.&lt;br /&gt;
&lt;br /&gt;
==== Lightning ====&lt;br /&gt;
&lt;br /&gt;
Hier kann man jeden einzelnen Kalender mit seiner vollständigen URL abonnieren.&lt;br /&gt;
&lt;br /&gt;
Über die Funktion &amp;quot;Create Calendar&amp;quot;:&lt;br /&gt;
# &amp;quot;On the Network&amp;quot;&lt;br /&gt;
# &amp;quot;CalDAV&amp;quot; mit &amp;quot;Location&amp;quot;: &#039;&#039;https://cal.example.org/franz/privat&#039;&#039;&lt;br /&gt;
# Namen vergeben und Farbe wählen&lt;br /&gt;
# ggf. noch User und Passwort angeben&lt;br /&gt;
# das war&#039;s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:CalDAV]]&lt;br /&gt;
[[Kategorie:Passenger]]&lt;/div&gt;</summary>
		<author><name>Hsh-michaelhoennig</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Etherpad_Installieren&amp;diff=4521</id>
		<title>Etherpad Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Etherpad_Installieren&amp;diff=4521"/>
		<updated>2017-11-27T08:25:04Z</updated>

		<summary type="html">&lt;p&gt;Hsh-michaelhoennig: /* Konfiguration für Apache und Passenger */ Link auf Phusion Passenger&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;pre&amp;gt;hsscript -i&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der HSAdmin-Shell gibt man dann ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&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;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Als Paketadmin &#039;&#039;xyz00&#039;&#039; nimmt man mit &amp;lt;pre&amp;gt;sudo -u xyz00-pad -i&amp;lt;/pre&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;pre&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/1.6.1&lt;br /&gt;
./bin/run.sh &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit &amp;quot;git checkout tags/1.6.1&amp;quot; wird Release 1.6.1 ausgecheckt, die heute (11.02.2017) 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;
== 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;pre&amp;gt;&lt;br /&gt;
cd&lt;br /&gt;
cd ~/doms/pad.example.com&lt;br /&gt;
rm -rf htdocs&lt;br /&gt;
rm -rf htdocs-ssl&lt;br /&gt;
ln -s ~/etherpad-lite/src/static htdocs&lt;br /&gt;
ln -s ~/etherpad-lite/src/static htdocs-ssl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für die Anwendung legen wir in den Verzeichnissen &#039;&#039;~/doms/pad.example.com/app/&#039;&#039; und &#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;pre&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;/pre&amp;gt;&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;pre&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;/pre&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;
== 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>Hsh-michaelhoennig</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Phusion_Passenger&amp;diff=4520</id>
		<title>Phusion Passenger</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Phusion_Passenger&amp;diff=4520"/>
		<updated>2017-11-27T08:20:28Z</updated>

		<summary type="html">&lt;p&gt;Hsh-michaelhoennig: Erläuterungen zur Nutzung von Phusiuon Passenger&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Phusion Passenger ist ein Apache-Plugin zur Integration von Apps auf Domain (vhost) Ebene.&lt;br /&gt;
Dabei kann es sich z.B. um [[NodeJS]], [[Etherpad installieren|Etherpad]], [[RubyOnRails]] und weiteren Laufzeitumgebungen handeln.&lt;br /&gt;
&lt;br /&gt;
== Aktivierung / .htaccess ==&lt;br /&gt;
&lt;br /&gt;
Das Plugin kann über die .htaccess Datei im jeweiligen Domain-Verzeichnis aktiviert werden.&lt;br /&gt;
Z.B. in &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/.htaccess&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
    PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v6.11.2/bin/node&lt;br /&gt;
&lt;br /&gt;
(Nähere Informationen bitte den jeweiligen Wiki-Seiten über die spezifischen Laufzeitumgebungen entnehmen.)&lt;br /&gt;
&lt;br /&gt;
Die Phusion Passenger ist Aktivierung erfolgt immer für die gesamte aufgeschaltete Domain,&lt;br /&gt;
sie wirkt also auch auf Subdomains im Verzerichnis &#039;subs&#039;.&lt;br /&gt;
Insbesondere wird damit PHP für die jeweilige Domain deaktiviert.&lt;br /&gt;
Statischen Dateien (z.B. index.html) aus htdocs* und subs* sind davon nicht betroffen.&lt;br /&gt;
Idealerweise wird daher für jede App eine eigene Subdomain mit HSAdmin aufgeschaltet.&lt;br /&gt;
&lt;br /&gt;
Sobald eine App einmal geladen ist, sind die Settings und Mappings Bestandteil der transienten Apache vhost-Konfiguration. &lt;br /&gt;
Die .htaccess-Settings bzgl. Passenger kommen dann nicht zum Tragen, &lt;br /&gt;
weil die .htaccess zu Gunsten der Effizienz dann nicht mehr ausgewertet wird.&lt;br /&gt;
&lt;br /&gt;
== Neueinlesen der Konfiguration / Restart der App ==&lt;br /&gt;
&lt;br /&gt;
Passenger Apps werden wir folgt neu gestartet oder neu geladen:&lt;br /&gt;
	&lt;br /&gt;
    mkdir app(-ssl)/tmp&lt;br /&gt;
    touch app(-ssl)/tmp/restart.txt&lt;br /&gt;
&lt;br /&gt;
Das führt nach einer Weile zu einem graceful Restart der App. &lt;br /&gt;
D.h. die einzelnen Prozesse werden sukzessive zwischen der Bedienung von HTTP-Requests neu gestartet. &lt;br /&gt;
Im Rahmen dieses Restarts sollten geänderte .htaccess Direktiven Wirkung entfalten. &lt;br /&gt;
Entsprechendes gilt für Änderungen an der Applikation selbst.&lt;/div&gt;</summary>
		<author><name>Hsh-michaelhoennig</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=NodeJS&amp;diff=4519</id>
		<title>NodeJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=NodeJS&amp;diff=4519"/>
		<updated>2017-11-27T07:52:55Z</updated>

		<summary type="html">&lt;p&gt;Hsh-michaelhoennig: /* NodeJS Web-Applikation */ Verweis auf Phusion Passenger&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Eigene NodeJS Installation ==&lt;br /&gt;
&lt;br /&gt;
Die JavaScript-Umgebung NodeJS für das Ausführen von JavaScript auf dem Server unterliegt noch einer rasanten Entwicklung.&lt;br /&gt;
Daher ist die Debian-Version, die bei Hostsharing vorinstalliert ist, oft zu alt für aktuelle Software.&lt;br /&gt;
&lt;br /&gt;
Ein kurze Anleitung für die eigene NodeJS-Installation für einen User.&lt;br /&gt;
&lt;br /&gt;
=== Installation von nvm ===&lt;br /&gt;
&lt;br /&gt;
Heute ist die Version v0.33.2  aktuell, siehe auch https://github.com/creationix/nvm/releases&lt;br /&gt;
&lt;br /&gt;
    $ touch ~/.profile&lt;br /&gt;
    $ chmod u+x ~/.profile&lt;br /&gt;
    $ cd /tmp&lt;br /&gt;
    $ wget https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh&lt;br /&gt;
    $ chmod u+x install.sh &lt;br /&gt;
    $ ./install.sh &lt;br /&gt;
&lt;br /&gt;
An dieser Stelle ab- und wieder anmelden oder die Befehle ausführen:&lt;br /&gt;
&lt;br /&gt;
    $ export NVM_DIR=&amp;quot;/home/pacs/xyz00/users/example/.nvm&amp;quot;&lt;br /&gt;
    $ [ -s &amp;quot;$NVM_DIR/nvm.sh&amp;quot; ] &amp;amp;&amp;amp; \. &amp;quot;$NVM_DIR/nvm.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Installation von NodeJS ===&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl&lt;br /&gt;
&lt;br /&gt;
    $ nvm install 4.8.4&lt;br /&gt;
    $ nvm alias default 4.8.4&lt;br /&gt;
&lt;br /&gt;
läßt sich (zum Beispiel) sehr einfach NodeJS in der Version 4.8.4 installieren.&lt;br /&gt;
&lt;br /&gt;
analog für die Version 6.11.x&lt;br /&gt;
&lt;br /&gt;
    $ nvm install 6.11.2&lt;br /&gt;
    $ nvm alias default 6.11.2&lt;br /&gt;
&lt;br /&gt;
Der Befehl&lt;br /&gt;
&lt;br /&gt;
    $ node -v&lt;br /&gt;
&lt;br /&gt;
gibt die Version von NodeJS aus.&lt;br /&gt;
&lt;br /&gt;
=== NodeJS Web-Applikation ===&lt;br /&gt;
&lt;br /&gt;
Zur Integration der eigenen NodeJS-Installation in den Apache erfolgt über das  Apache-Modul &amp;quot;Passenger&amp;quot;.&lt;br /&gt;
Vor der Nutzung dieses Moduls bitte unbedingt die 	&lt;br /&gt;
[[Phusion Passenger|Hinweise zur Nutzung beachten]].&lt;br /&gt;
&lt;br /&gt;
Den Pfad zum node-Binärprogramm konfiguriert man in einer &amp;quot;.htaccess&amp;quot;-Datei im&lt;br /&gt;
Verzeichnis der Domain &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/.htaccess&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
    PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v4.8.4/bin/node&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
    PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v6.11.2/bin/node&lt;br /&gt;
&lt;br /&gt;
Zum Testen kann man eine &amp;quot;app.js&amp;quot; ins Verzeichnis &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/app-ssl/&amp;quot; &lt;br /&gt;
ablegen.&lt;br /&gt;
&lt;br /&gt;
Eine minimale &amp;quot;app.js&amp;quot; zur Anzeige der NodeJS Version:&lt;br /&gt;
&lt;br /&gt;
    var http = require(&amp;quot;http&amp;quot;);&lt;br /&gt;
    http.createServer(function (request, response) {&lt;br /&gt;
       response.writeHead(200, {&#039;Content-Type&#039;: &#039;text/plain&#039;});&lt;br /&gt;
       response.write(&#039;node version &#039; + process.version + &#039;\n&#039;);&lt;br /&gt;
       response.end();&lt;br /&gt;
    }).listen(3000);&lt;br /&gt;
&lt;br /&gt;
=== Weitere Installationen ===&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;quot;Node Package Manager&amp;quot; npm läßt sich weitere Software in die Node-Umgebung installieren:&lt;br /&gt;
&lt;br /&gt;
    $ npm install -g gulp&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Hsh-michaelhoennig</name></author>
	</entry>
</feed>