Menü Schließen

Debian 10 Buster – Rocket Chat installieren

Rocket Chat Logo

Installation von Rocket.Chat unter Snapd. Dies ist eine sichere und sehr einfache Installationsmöglichkeit. Außerdem kann man über Snaps auch einfache Updates von neuen Versionen installieren.

Installation von snapd:

# apt install snapd

Nun wird die systemd Unit aktiviert, danach einen Neustart durchführen:

# systemctl enable --now snapd.socket
# reboot

Optional kann der klassische Support per Symbolischenlink erfolgen:

# ln -s /var/lib/snapd/snap /snap

Nachdem Snapd installiert ist, kann Rocket.Chat installiert werden. Es wird automatisch der stable Channel verwendet.

# snap install rocketchat-server
2021-01-17T22:17:00+01:00 INFO Waiting for restart...
rocketchat-server 2.4.14 from Rocket.Chat (rocketchat✓) installed
Channel latest/stable for rocketchat-server is closed; temporarily forwarding to stable.

Nun ist Rocket.Chat über die URL mittels http://http://dein-server.tld:3000 aufrufbar. Hier geht es mit dem Setup Assistenten weiter:

Rocket.Chat - Setup Admin
Rocket.Chat – Setup Admin
Rocket.Chat - Setup Organisation
Rocket.Chat – Setup Organisation
Rocket.Chat - Setup Serverinfo
Rocket.Chat – Setup Serverinfo
Rocket.Chat - Setup Serverregistrierung
Rocket.Chat – Setup Serverregistrierung
Rocket.Chat - Setup Finish
Rocket.Chat – Setup Finish
Rocket.Chat - First Run
Rocket.Chat – First Run

Rocket.Chat mit Apache Reverse Proxy

Damit nicht der Servername / FQDN und Port 3000 jedes Mal in der Adresse eingegeben werden muss, wird der Aufruf von Rocket.Chat mittels Reverse Proxy auf http://chat.dein-domain.tld, mittels Apache Webserver konfiguriert.

# apt install apache2

Nun Apache2 aktivieren und neustarten:

# systemctl enable --now apache2 	
# systemctl status apache2
 Active: active (running) since 

Als nächstes wird eine Site Konfiguration erstellt – Achtung Werte entsprechend anpassen:

# nano /etc/apache2/sites-available/chat.deine-domain.tld.conf
<VirtualHost *:80>
    ServerAdmin admin@deine-domain.tld
    ServerName chat.deine-domain.tld

    LogLevel info
    ErrorLog /var/log/chat.deine-domain.tld_error.log
    TransferLog /var/log/chat.deine-domain.tld_access.log

    <Location />
        Require all granted
    </Location>

    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} =websocket [NC]
    RewriteRule /(.*)           ws://localhost:3000/$1 [P,L]
    RewriteCond %{HTTP:Upgrade} !=websocket [NC]
    RewriteRule /(.*)           http://localhost:3000/$1 [P,L]

    ProxyPassReverse /          http://localhost:3000/
</VirtualHost>

Datei speichern und benötigte Apache2 Module laden und Apache neustarten:

# a2enmod proxy_http
# a2enmod proxy_wstunnel
# a2enmod rewrite
# systemctl restart apache2

Damit ist alles konfiguriert und Rocket.Chat kann nun im Browser mittels http://chat.deine-domain.tld aufgerufen werden.

Rocket.Chat – https mit Lets Encrypt Certbot

Apache SSL Modul aktivieren, Debian Buster Backports hinzufügen und den Certbot installieren:

# a2enmod ssl
# systemctl restart apache2
# echo "deb http://ftp.debian.org/debian buster-backports main" >> /etc/apt/sources.list
# apt update
# apt install python-certbot-apache -t buster-backports

Nun das Zertifikat für die Domain anfordern. Die Apache2 Konfiguration wird automatisch erstellt. Bei der Installation kann auch automatisch die Konfiguration für ein Redirect von http -> https erfolgen.

# sudo certbot --apache -d chat.deine-domain.tld
# a2dissite 000-default.conf
# sudo apache2ctl configtest
# systemctl restart apache2.service

Rocket.Chat Server Registrierung

image 29
image 25
image 26
image 27
image 28
image 30
image 31
image 32
image 33
image 34

Rocket.Chat Snap old Version

Als ich Rocket Chat über obigen Weg per snapd installiert hatte, fiel mir auf, dass die Version 2.4.14 viel zu alt ist. Aktuell war die 3.10.4.

# snap list
Name               Version    Rev    Tracking       Publisher    Notes
core               16-2.48.2  10583  latest/stable  canonical✓   core
rocketchat-server  2.4.14     1453   latest/stable  rocketchat✓  -

# snap version
snap    2.48.2
snapd   2.48.2
series  16
debian  10
kernel  4.19.0-13-amd64

Also aktualisieren:

# snap refresh rocketchat-server
snap "rocketchat-server" has no updates available

# snap refresh rocketchat-server --channel=3.x/stable --classic
rocketchat-server (3.x/stable) 3.9.3 from Rocket.Chat (rocketchat✓) refreshed

MongoDB 4 Community Edition installieren

Wird nicht direkt aus den Paketquellen von Debian installiert.

# apt update && sudo apt upgrade
# apt -y install gnupg gnupg2 wget sudo build-essential graphicsmagick g++ curl

MongoDB installieren

# wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
# echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | sudo tee /etc/apt/sources.list.d/mongodb-org.list
# sudo apt update
# sudo apt-get install -y mongodb-org
# mongod -v |grep  'db version'
# CONTROL  [initandlisten] db version v4.2.5

NodeJS installieren

# sudo apt-get -y update && sudo apt-get install -y curl && curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
# sudo apt-get install -y nodejs
# sudo npm install -g inherits n && sudo n 12.16.2
# node -v
v12.16.2

Rocket.Chat installieren

# sudo curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
# sudo tar -xzf /tmp/rocket.chat.tgz -C /tmp
# cd /tmp/bundle/programs/server && npm install
# sudo mv /tmp/bundle /opt/Rocket.Chat
# rm /tmp/rocket.chat.tgz

Rocket.Chat Service konfigurieren

# sudo useradd -M rocketchat && sudo usermod -L rocketchat
# sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat

cat << EOF |sudo tee -a /lib/systemd/system/rocketchat.service
[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.target mongod.target
[Service]
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 ROOT_URL=http://localhost:3000/ PORT=3000
[Install]
WantedBy=multi-user.target
EOF

Service anpassen und ROOT_URL Variable, die die Adresse zum aufrufen von Rocket Chat entspricht ändern und optional die Variablen MONGO_URL, MONGO_OPLOG_URL und PORT

# sudo nano /lib/systemd/system/rocketchat.service

MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01
MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01
ROOT_URL=https://deine-url.tld:3000
PORT=3000

bl

# sudo sed -i "s/^#  engine:/  engine: wiredTiger/"  /etc/mongod.conf
# sudo sed -i "s/^#replication:/replication:\n  replSetName: rs01/" /etc/mongod.conf
# sudo systemctl enable mongod && sudo systemctl start mongod
Created symlink /etc/systemd/system/multi-user.target.wants/mongod.service → /lib/systemd/system/mongod.service.
# mongo --eval "printjson(rs.initiate())"
# sudo systemctl enable rocketchat && sudo systemctl start rocketchat
Created symlink /etc/systemd/system/multi-user.target.wants/rocketchat.service → /lib/systemd/system/rocketchat.service.

Rocket.Chat System Status

# systemctl status rocketchat.service
● rocketchat.service - The Rocket.Chat server
   Loaded: loaded (/lib/systemd/system/rocketchat.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2020-04-13 02:26:14 CEST; 1min 23s ago
 Main PID: 343 (node)
    Tasks: 11 (limit: 2356)
   Memory: 631.9M
   CGroup: /system.slice/rocketchat.service
           └─343 /usr/local/bin/node /opt/Rocket.Chat/main.js

rocketchat[343]: ➔ |      MongoDB Version: 4.2.5                                |
rocketchat[343]: ➔ |       MongoDB Engine: wiredTiger                           |
rocketchat[343]: ➔ |             Platform: linux                                |
rocketchat[343]: ➔ |         Process Port: 3000                                 |
rocketchat[343]: ➔ |             Site URL: http://deine-url.tld:3000/  |
rocketchat[343]: ➔ |     ReplicaSet OpLog: Enabled                              |
rocketchat[343]: ➔ |          Commit Hash: dd9b1a12c7                           |
rocketchat[343]: ➔ |        Commit Branch: HEAD                                 |
rocketchat[343]: ➔ |                                                            |
rocketchat[343]: ➔ +------------------------------------------------------------+

Apache für SSL installieren

# echo "deb http://ftp.debian.org/debian buster-backports main" >> /etc/apt/sources.list
# sudo apt-get update
# sudo apt install -y apache2
# a2enmod proxy_http
# a2enmod proxy
# a2enmod ssl
# a2enmod proxy_wstunnel
# a2enmod rewrite

Virtual Host für Port 80 erstellen:

# nano /etc/apache2/sites-enabled/deine-seite.tld.conf
<VirtualHost *:80>
    ServerAdmin info@deine-seite.tld
    ServerName chat.deine-seite.tld

    LogLevel info
    ErrorLog /var/log/chat.deine-seite.tld_error.log
    TransferLog /var/log/chat.deine-seite.tld_access.log

    <Location />
        Require all granted
    </Location>

    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} =websocket [NC]
    RewriteRule /(.*)           ws://localhost:3000/$1 [P,L]
    RewriteCond %{HTTP:Upgrade} !=websocket [NC]
    RewriteRule /(.*)           http://localhost:3000/$1 [P,L]

    ProxyPassReverse /          http://localhost:3000/
</VirtualHost>

Certbot installieren

# sudo apt install python-certbot-apache -t buster-backports

Zertifikat für meine-seite.tld beziehen

# sudo certbot --apache -d deine-domain.tld
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

damit wird auch automatisch der Virtual Host für die SSL Seite erstellt, Basis ist die zuvor erstellte vHost Konfig:

# nano /etc/apache2/sites-enabled/deine-seite.tld-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin info@deine-seite.tld
    ServerName chat.deine-seite.tld

    LogLevel info
    ErrorLog /var/log/chat.deine-seite.tld_error.log
    TransferLog /var/log/chat.deine-seite.tld_access.log

    SSLEngine On
    SSLCertificateFile /etc/ssl/certs/chat.deine-seite.tld.crt
    SSLCertificateKeyFile /etc/ssl/private/chat.deine-seite.tld.key

    <Location />
        Require all granted
    </Location>

    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} =websocket [NC]
    RewriteRule /(.*)           ws://localhost:3000/$1 [P,L]
    RewriteCond %{HTTP:Upgrade} !=websocket [NC]
    RewriteRule /(.*)           http://localhost:3000/$1 [P,L]

    ProxyPassReverse /          http://localhost:3000/

    SSLCertificateFile /etc/letsencrypt/live/deine-seite.tld/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/deine-seite.tld/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf

</VirtualHost>
</IfModule>

Test und Restart

# a2dissite 000-default.conf
# sudo apache2ctl configtest
# systemctl restart apache2.service

Rocket.Chat WebUI installieren

# http://your-host-name.com-as-accessed-from-internet:3000
image 6
image 7
image 8
image 9

Fehler MongoDB

** WARNING: Support for MMAPV1 storage engine has been deprecated and will be
removed in version 4.2. Please plan to migrate to the wiredTiger storage engine.
** See http://dochub.mongodb.org/core/deprecated-mmapv1

Lösung

# sudo sed -i "s/^#  engine:/  engine:  wiredTiger/"  /etc/mongod.conf

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert