Rocket.Chat ist eine leistungsfähige Open-Source Kommunikations-Software, vergleichbar mit Discord. Da man jedoch hier seinen eigenen Server hostet, hat man die volle Kontrolle von der Konfiguration bis hin zum Thema Datenschutz.
Vorbereitung
Stelle zunächst sicher, dass sich dein Server auf dem neuesten Stand befindet:
apt-get update
apt-get -y upgrade
Notwendige Pakete installieren
Importiere den öffentlichen Schlüssel, um die notwendigen MongoDB-Pakete zu installieren, und erstelle die folgende Listendatei:
apt-get install dirmngr && apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/3.6 main" | tee /etc/apt/sources.list.d/mongodb-org-3.6.list
Konfiguriere Node.js für die Installation über den Paketmanager:
apt-get update && apt-get install -y curl && curl -sL https://deb.nodesource.com/setup_8.x | bash -
Installiere Build-Tools, MongoDB, nodejs und graphicsmagick:
apt-get install -y build-essential mongodb-org nodejs graphicsmagick
npm install -g inherits n && n 8.11.3
Rocket.Chat installieren
Lade die neueste Version von Rocket.Chat per curl herunter:
curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
tar -xzf /tmp/rocket.chat.tgz -C /tmp
cd /tmp/bundle/programs/server && npm install
mv /tmp/bundle /opt/Rocket.Chat
Konfiguriere den Rocket.Chat Service:
useradd -M rocketchat && usermod -L rocketchat
chown -R rocketchat:rocketchat /opt/Rocket.Chat
echo -e "[Unit]\nDescription=The Rocket.Chat server\nAfter=network.target remote-fs.target nss-lookup.target nginx.target mongod.target\n[Service]\nExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js\nStandardOutput=syslog\nStandardError=syslog\nSyslogIdentifier=rocketchat\nUser=rocketchat\nEnvironment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://DEINE_DOMAIN.TLD:3000/ PORT=3000\n[Install]\nWantedBy=multi-user.target" | tee /lib/systemd/system/rocketchat.service
Editiere nun den Rocket.Chat Service und ersetzte in der Zeile Environment DEINE_DOMAIN.TLD mit deiner Domain bzw. IP-Adresse des Servers:
nano /lib/systemd/system/rocketchat.service
Aktiviere und starte MongoDB und Rocket.Chat:
systemctl enable mongod && systemctl start mongod
systemctl enable rocketchat && systemctl start rocketchat
Jetzt muss noch eine Kleinigkeit unter MongoDB eingerichtet werden. Füge folgende Werte in die mongod.conf ein und starte den Dienst anschließend neu:
echo -e "replication:\n replSetName: \"rs01\"" | tee -a /etc/mongod.conf
systemctl restart mongod
Starte die MongoDB-Shell:
mongo
Und gib hier folgendes ein:
rs.initiate()
Du erhältst eine mehrzeilige Antwort. Wichtig ist hier, dass im Wert ok eine 1 steht. Dann hat alles geklappt. Verlasse die MongoDB-Shell wieder:
exit
Editiere wieder den Rocket.Chat Service...
/lib/systemd/system/rocketchat.service
... Und füge in der Environment-Zeile gefolgt von einem Leerzeichen folgendes am Ende ein:
MONGO_OPLOG_URL=mongodb://localhost:27017/local?replSet=rs01
Starte beide Dienste noch einmal neu:
systemctl daemon-reload && systemctl restart rocketchat
Rufe nun im Browser die definierte ROOT_URL mit Port 3000 auf und folge den Konfigurationsschritten:
DEINE_DOMAIN.TLD:3000
Es kann einige Sekunden dauern, bis der Service hochgefahren ist. Den aktuellen Status kannst du mit service rocketchat status einsehen.
Bei Fragen oder Anregungen freue ich mich natürlich über eure Kommentare.
Über mich
Ich bin Janis (aka. EurenikZ), 25 Jahre alt und komme aus der Nähe von Frankfurt am Main. Ich habe eine abgeschlossene IHK-Ausbildung zum Fachinformatiker für Systemintegration und arbeite als Junior IT-Administrator in einem IT-Systemhaus. Neben meinem IT-Blog beschäftige ich mich viel mit diversen IT-Themen und meinen Webseiten sowie Telegram Bots und biete IT-Dienstleistungen an.