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 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
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
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
Interessiert in verschiedenste IT Themen, schreibe ich in diesem Blog über Software, Hardware, Smart Home, Games und vieles mehr. Ich berichte z.B. über die Installation und Konfiguration von Software als auch von Problemen mit dieser. News sind ebenso spannend, sodass ich auch über Updates, Releases und Neuigkeiten aus der IT berichte. Letztendlich nutze ich Taste-of-IT als eigene Dokumentation und Anlaufstelle bei wiederkehrenden Themen. Ich hoffe ich kann dich ebenso informieren und bei Problemen eine schnelle Lösung anbieten. Wer meinen Aufwand unterstützen möchte, kann gerne eine Tasse oder Pod Kaffe per PayPal spenden – vielen Dank.