/ Uberspace

NodeBB auf dem eigenen Uberspace installieren

ACHTUNG: NodeBB lässt sich nicht mehr mit dem Apache2-Reverse-Proxy umleiten, da NodeBB mittlerweile SocketIO benutzt, welches nicht von Uberspace unterstützt wird, weshalb NodeBB nur noch über einen Port auf Uberspace erreichbar ist…

Ich empfehle daher NodeBB nicht mehr auf einem Uberspace zu benutzten.
Sobald Uberspace 7 ausreichend dokumentiert und NodeJS implementiert wurde, werde ich einen neuen Versuch wagen, NodeBB dort zum Laufen zu bringen. Updates folgen...

Hier ist die sehr gute Dokumentation von NodeBB vorzuschlagen, mit der eine Installation auf einem vServer schnell und einfach gelingen sollte...


Installation des bekannten NodeJS-Forum NodeBB auf dem eigenen Uberspace:

Was man dafür braucht:

Update: Bei einem Test meinerseits musste ich feststellen, dass es manchmal zu Fehlern mit der NodeJS-Version auf den Ubersapce-Systemen kommt.
Dies lässt sich leicht beheben, indem man die NodeJS Version auf z.B. v6.1.0 festlegt:
echo 'export PATH=/package/host/localhost/nodejs-6.1.0/bin:$PATH' >> ~/.bash_profile
source ~/.bash_profile
Mit node -v sollte nun die Version 6.1.0 ausgegeben werden.

Als aller erstes richte ich eine eigene MongoDB-Instanz ein:
test -d ~/service || uberspace-setup-svscan
uberspace-setup-mongodb
Im daraufhin angezeigten Text werden einem der Hostname, Portnummer, Benutzername und Password der MongoDB-Instanz angezeigt.
Diese sollte man sich gut für den folgenden Befehl notieren.

Jetzt erstelle ich eine Datenbank mit eigenem Benutzernamen und Password:

Als Admin anmelden:
mongo admin --port <Portnummer> -u <Benutzername> -p <Password>

Datenbank erstellen:
use <gewünschter Datenbankname>

Benutzer mit Password erstellen:
db.createUser( { user: "<gewünschter Benutzername>", pwd: "<gewünschtes Password>", roles: [ "readWrite" ] } )

Als Admin abmelden:
exit

Damit wurde nun eine Datenbank erstellt, dazu einen Benutzer mit einem gewünschten Password.
Nun lade ich die neuste Version (Aktuelle Version) von NodeBB per Git herunter und speicher diese im Ordner „nodebb“:
git clone -b v1.4.2 https://github.com/NodeBB/NodeBB.git nodebb

Mit
cd nodebb/

wechsel ich in das Verzeichnis und mit
npm install

werden alle Vorraussetzungen mit NPM installiert.
Als nächstes konfiguriere ich NodeBB:
./nodebb setup

Als URL gebe ich http://meinedomain.de:67890
an, der Standardport 4567 funktioniert leider nicht, laut Uberspace-Wiki soll man immer einen Port >60000 verwenden.

Bei Anfangs „Which database to use“ mongo
Die Host IP bleibt bei 127.0.0.1, also Localhost.
Der Host Port entspricht dem Port, der bei der Einrichtung der MongoDB-Instanz angezeigt wurde.
Der MongoDB Username ist in diesem Beispiel: nodebb (der bei db.createUser angelegte Benutzername)
Das MongoDB Password ist das bei db.createUser…. festgelegte Password.
Beim letzten Punkt: „Which database to use“ muss der Datenbank-Name,
der bei use Datenbank-Name… angegeben wurde, eingegeben werden.

Im nachfolgenden Dialog richte ich meinen Administrator Account ein.

Wenn dies alles ohne Fehler abgeschlossen ist, wurde NodeBB erfolgreich installiert und kann mit ./nodebb start gestartet werden.
Allerdings ist NodeBB noch nicht von außen richtig erreichbar.

Dieses Problem lässt sich mit einer .htaccess in dem html Ordner lösen.
In dieser .htaccess Datei muss folgendes stehen (mit z.B. Nano die Datei erstellen und bearbeiten) (Domain und Port einsetzen!):

RewriteEngine On
RewriteCond %{HTTP_HOST} ^<MeineDomain>
RewriteRule ^(.*)$ http://localhost:<Port der NodeBB Installation>/$1 [NC,P,L]*

Nun sollte eure NodeBB Installation abgeschlossen sein und per http://MeineDomain.de erreichbar sein!

Wenn es Fragen oder Probleme gibt, schreibt diese mir als Kommentar unter diesem Post...


Ergänzung: Eine NodeBB-Instanz updaten! Danke an Eddy (Kommentaren)

Hier die nötigen Schritte:
cd ~/nodebb
./nodebb stop
git fetch
git reset --hard origin/1.x.x
./nodebb upgrade
./nodebb start