/ uberspace

Rocket.Chat auf Uberspace installieren

Ich hatte hier beschrieben, wie ihr Let's Chat auf euren Uberspace installieren könnt, in den Kommentaren wurde dann nach Rocket.Chat gefragt und da diese Slack-Alternative auch interessant aussieht, habe ich mich mal an die Installation gemacht.

Die Installation von MongoDB beschreibe ich nicht nochmal, die könnt ihr im Let's Chat Artikel nachlesen, es gibt aber noch einiges mehr zutun, also fangen wir an:

Zunächst müssen wir NPM und GCC anpassen, da diese in der Standardversion zu Fehlern bei der Kompilierung von Node Modulen führen.

npm config set python /usr/local/bin/python2.7

echo 'export PATH=/package/host/localhost/gcc-4/bin:$PATH' >> ~/.bashrc

echo 'export LD_LIBRARY_PATH=/package/host/localhost/gcc-4/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc

Anschließend kann man mittels

source ~/.bashrc

die Einstellungen aktivieren.

Hierdurch habt ihr NPM so konfiguriert, dass es Python2.7 zur Kompilierung verwendet und GCC nun auf Version 4.9.2 geändert, da diese auch C++11 unterstützt.

Jetzt brauchen wir noch einen Port, auf dem Rocket.Chat lokal laufen kann.

uberspace-add-port -p tcp --firewall

sucht einen freien Port und zeigt diesen an. Merken oder besser noch direkt aufschreiben!

Nun könnt ihr einen Ordner oder eine Subdomain erzeugen, je nachdem wie ihr später auf Rocket zugreifen wollt.

In diesem Ordner könnt ihr dann folgendes Eingeben, ich gehe mal davon aus dass ihr eine Subdomain für Rocket erzeugt

cd ~/subdomains  
mkdir subdomain.domain.tld

cat <<__EOF__ >> ~/subdomains/subdomain.domain.tld/.htaccess  
RewriteEngine On  
RewriteCond %{SERVER_PORT} 80  
RewriteRule ^(.*)$ https://subdomain.domain.tld/$1 [R,L]

RewriteCond %{SERVER_PORT} 443  
RewriteRule ^(.*) http://localhost:$Portnummer/$1 [P]  
__EOF__ 

Folgende Variablen müssen noch definiert werden, um Rocket starten zu können.

export PORT=[Portnummer]
export ROOT_URL=[URL]
export MONGO_URL=mongodb://[MongoDB-User:Kennwort]@localhost:[MongoDB-Port]/rocketchat?authSource=admin

Nun können wir endlich Rocket installieren. Geht dafür in einen Ordner wo die Daten später liegen sollen. Ich hab dafür einen Ordner in Home namens NodeApps erzeugt. Dort führt ihr dann folgendes aus

curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz
tar zxvf rocket.chat.tgz
mv bundle Rocket.Chat
cd Rocket.Chat/programs/server
npm install
cd ~

Jetzt starten wir Rocket um zu gucken, ob alles funktioniert und um erstmal einen Adminbenutzer zu erzeugen

node /home/[USERNAME]/NodeApps/Rocket.Chat/main.js

Der Start dauert etwas, danach geht ihr auf die von euch festgelegte URL und registriert einen neuen Nutzer. Dieser ist automatisch Admin.

Zuletzt erzeugen wir noch einen Service um Rocket im Hintergrund laufenzulassen.

uberspace-setup-service rocketchat /package/host/localhost/nodejs-4/bin/node /home/[USERNAME]/NodeApps/Rocket.Chat/main.js > 2>&1

Passen wir den Dienst noch an, da die Umgebungsvariablen auch hier gesetzt werden müssen. Also erstmal den Dienst beenden

svc -d ~/service/rocketchat

und dann ~/service/rocketchat/run bearbeiten.
Es sollte am Schluss wie folgt aussehen

#!/bin/sh

# These environment variables are sometimes needed by the running daemons
export USER=[USER]
export HOME=/home/[USER]

export PORT=[PORT]
export ROOT_URL=[URL]
export MONGO_URL=mongodb://[MongoDB-User]@localhost:[MongoDB-Port]/rocketchat?authSource=admin


# Include the user-specific profile
source $HOME/.bash_profile

# Now let's go!
cd /home/[USER]/NodeApps/Rocket.Chat
exec /package/host/localhost/nodejs-4/bin/node /home/[USER]/NodeApps/Rocket.Chat/main.js > 2>&1

Dienst wieder starten und schon solltet ihr auf euren frisch aufgesetzten Rocket.Chat zugreifen können.

Rocket.Chat auf Uberspace installieren
Share this