Rocket.Chat: een open source team communicatie platform

About

Rocket.Chat: een open source team communicatie platform

In het tijdperk van agile, devops en thuiswerken heeft iedereen behoefte aan mogelijkheden om virtueel samen te werken. Rocket.Chat is een open source platform waar teams op afstand elkaar ontmoeten en met elkaar samenwerken.

Matto Fransen

Communicatie is wat ons tot mensen maakt. Wij onderscheiden ons ermee van het andere leven op aarde, en het speelt een zeer belangrijke rol in ons leven. Met de komst van computernetwerken werden deze ook al snel ingezet voor onderlinge communicatie. Applicaties gericht op communicatie hebben inmiddels een aardige evolutie achter de rug. Eerst op lokale netwerken, met een beperkt bereik, later met de komst van internet ook op wereldwijde schaal. Software-ontwikkelaars, systeembeheerders en IT-hobbyisten vonden elkaar via Bulletin Boards, e-mail, use-net en IRC. Het internet zag ook de komst van een hele reeks instant messaging oplossingen van ICQ, Google Talk, MSN en Jabber, tot FaceTime, Facebook Messenger, WhatsApp en Google Hangouts.

Sommige ontwikkelaars van open source software projecten richten nog steeds specifieke IRC-kanalen op, maar in de wereld daarbuiten is dat inmiddels een te oud protocol. Men heeft nieuwe eisen, zoals beschikbaarheid van clients voor mobiele apparaten, notificaties, plugins en integraties.

Rocket.Chat is een feature-rijke open source chat web-applicatie. Rocket.Chat is ontwikkeld in Javascript, op basis van het Meteor framework en gebruikt MongoDB als onderliggende database. Rocket.Chat is beschikbaar onder de open source MIT licentie. Je draait het op je eigen server, zodat de privacy van de gebruikers en de vertrouwelijkheid van de gegevensuitwisseling gewaarborgd is.

Rocket.Chat kent naast de gratis community-versie verschillende prijsmodellen. Rocket.Chat geeft aan dat de community versie geschikt is voor organisaties met een grootte tot 1.000 gebruikers. Verder ontlopen de geboden features in de verschillende modellen niet erg. Een belangrijk keuze is of je gaat voor een zelf beheerde oplossing of voor een SAAS cloud-oplossing. Daarnaast zijn zaken als voorgeprogrammeerde respons, en enterprise opties zoals ‘engagement dashboard’, analytische API et cetera voorbehouden aan de duurdere variant. Wanneer je support wilt, dan is ook een betaalde versie beter. Maar wij verwachten dat voor de meeste organisaties de community-versie van Rocket.Chat prima zal voldoen.

Voor het gebruikersbeheer en de authenticatie kies je uit verschillende modellen. Heb je met een kleinere omgeving te maken, dan kun je handmatig het gebruikersbeheer uitvoeren. Dit schaalt natuurlijk niet, gelukkig ondersteunt Rocket.Chat ook andere methoden, zoals CAS, LDAP, SAML en Oauth. Rocket.Chat ondersteunt two-factor authenticatie.

Rocket.Chat is een webapplicatie, die je via je webbrowser gebruikt, daarnaast biedt Rocket.Chat ook desktop applicatie aan voor Mac, Windows en Linux, en mobiele applicaties voor zowel Android als iOS. De website van Rocket.Chat heeft documentatie voor installatie op de Rocket.Chat server op veel verschillende omgevingen, waaronder Debian, Ubuntu, CentOS, RedHat, Docker, AWS, Digital Ocean enzovoorts. Je doet de installatie met behulp van Snap, of je voert een handmatige installatie uit.

Raspberry Pi

Wij deden een handmatige installatie van de Rocket.Chat server op een Debian LXC Linux container op een Intel 64-bits Linux systeem. De helder beschreven stappen uit de documentatie van de Rocket.Chat website zijn netjes te volgen. Bij een standaard installatie draait Rocket.Chat op port 3000. Na voltooiing van de installatie plaatsen wij een reverse proxy met NGINX voor de LXC Linux container. Omdat dit alles binnen ons eigen netwerk blijft, voorzien wij deze van een zogenoemd self-signed certificaat. Deze reverse proxy ontsluit de container naar het lokale netwerk, ter voorkoming van mogeiljke routing kwesties. Verder zorgt deze er voor dat Rocket.Chat op de standaard web porten 80 een 443 beschikbaar is. Het installeren van een reverse proxy met NGINX is niet ingewikkeld.

Voor de Raspberry Pi bestaat een snap-package waarmee je makkelijk Rocket.Chat installeert. Kies dan wel een van de nieuwste modellen met voldoende geheugen. Verder stelt het ook wel eisen aan je SD-kaart. Uiteraard is Rocket.Chat op een Raspberry Pi niet geschikt voor grotere organisaties, maar wanneer je een chat-oplossing voor een niet al te groot team zoekt, of als vrienden- of familie chat omgeving, dan is dit zeker het overwegen waard.

MongoDB

Rocket.Chat gebruikt MongoDB als database. Deze moet je dus eerst installeren. Wij hebben diverse beschrijvingen met verschillende manieren van installeren van Rocket.Chat op internet gevonden, bij een aantal daarvan bouw je de MongoDB server vanaf de sourcecode.

De installatiebeschrijving van Rocket.Chat op de Rocket.Chat website zelf gaat uit van de installatie van MongoDB via een Debian-package. Helaas was op het moment van schrijven deze niet voor Debian Buster beschikbaar, alleen voor Debian Stretch. Hou er rekening mee dat MongoDB heel veel schijfruimte vraagt. Dit heeft onder andere te maken met het database type dat Rocket.Chat vereist. In de testopstelling in ons thuisnetwerk bedraagt de omvang van de MongoDB ruim 18 GB. Dit is vast nog wel wat te tunen, maar bij een eerdere installatiepoging op een machine met 3 GB lege schijfruimte weigerde MongoDB te starten. Je hebt toch wel minimaal 10 GB vrije ruimte nodig. Nadat je MongoDB hebt draaien installeer je met behulp van npm Rocket.Chat.

Publieke en besloten kanalen

Communiceren in Rocket.Chat doe je via kanalen. Rocket.Chat kent publieke en besloten kanalen. In de standaardconfiguratie kan elke gebruiker zelf kanalen aanmaken. Publieke kanalen zijn door iedereen te vinden en gebruikers kunnen zelf toetreden tot publieke kanalen. Een besloten kanaal is alleen te vinden door de leden van dat kanaal. Een besloten kanaal is bedoeld voor kleinere teams en voor gevoelige informatie. Toetreden tot een besloten kanaal kan uitsluitend op basis van een uitnodiging.

In Rocket.Chat heet de methode om één op één met iemand te communiceren “direct messaging”. Je kiest een gebruiker en stuurt die persoon een direct message, om de een-op-een berichtenuitwisseling op te starten. Hierbij maakt het niet uit of de betreffende persoon onderdeel is van je team of niet, je kunt elke gebruiker op het systeem selecteren en een direct message sturen.

Discussies

Je kunt binnen een kanaal een subkanaal aanmaken, in Rocket.Chat heet dit een “discussie”. Je maakt een discussiekanaal en geeft die een naam en een begeleidend bericht. Verder nodig je de deelnemers uit. Hiermee hou je de berichtuitwisseling over het betreffende onderwerp bij elkaar en houd je die buiten de normale berichtenuitwisseling van het betreffende kanaal.

Verder zijn er nog de opties om broadcast kanalen en om read-only maken te maken. Dit kan bijvoorbeeld nuttig zijn voor het doen van announcements, organisatiebrede nieuwsberichten, of bij wijze van archief na afloop van een project wanneer je voor dat project een tijdelijk kanaal hebt gemaakt.

De webinterface is eenvoudig van opbouw. Links is een kolom met bovenin een klein menuutje, daaronder volgen de publieke en besloten kanalen waar je lid van bent en daaronder de directe berichten. Een bericht stel je op door tekst te typen. In de webinterface verstuur je je bericht door op Enter te drukken. Met Shift-Enter voeg je een regeleinde in en ga je naar een nieuwe regel. Je kunt iemand een extra notificatie geven door in het bericht de gebruikersnaam voorafgegaan door een apenstaartje te typen, bijvoorbeeld “@henk”. In dat geval ziet Henk een rode badge op het kanaal, of krijgt deze bijvoorbeeld een notificatie via e-mail.

Je kunt behalve een getypt bericht eenvoudig een bestand naar het kanaal sturen. Dit kan van alles en nog wat zijn, zoals een ODT- of PDF bestand, een afbeelding, een audio- of videobestand, enzovoorts. Wanneer je de webclient gebruikt dan kun je via je browser audioberichten in spreken of zelfs met je webcam videoberichten maken en versturen. Je klikt op het plusje rechts in de berichtenbalk en je kiest een willekeurig bestand, dat dan naar het kanaal gestuurd wordt. Uiteraard kun je ook drag-en-drop gebruiken om bestanden te versturen.

Zoeken

Berichten opmaken doe je in het Markdown formaat, zoals vet (tussen sterretjes), cursief (tussen underscores), doorgehaald (tussen min-tekens) enzovoorts. Ook kun je zo linkjes toevoegen.

Je kunt berichten een ster geven en berichten pinnen. Rechtsboven in het chatkanaal heb je een snelmenu met icons om snel een overzicht te krijgen van de berichten waarin je genoemd bent (@naam), berichten die je een ster gegeven hebt of die gepind zijn. Rocket.Chat biedt goede zoekfuncties. Je kunt op berichten zoeken naar tekst, maar ook met zoekopdrachten zoals “From:me”, “From:” en “Starred”, erg krachtig is het zoeken met reguliere expressies. Naast zoeken naar en in de tekstberichten kun je ook bestanden zoeken. Je opent het zoekscherm in het kanaal, en geeft een deel van de bestandsnaam op. Je kunt het zoeken nog verfijnen door een bepaald bestandstype te selecteren, zoals “afbeeldingen”, “video’s” of “audio’s”.

Apps

Apps, niet te verwarren met clients, zijn plugins voor de Rocket.Chat server, hiermee verbreed je dus de functionaliteit van de server. Sommige apps zijn gratis, andere vereisen een betaald abonnement. Voorbeelden van gratis apps zijn een integratie app voor GitLab, een integratie app voor Jitsi, of een out-of-office responder.

Rocket.Chat desktop-applicatie.

Clients

Er is een desktop client beschikbaar voor Windows, Mac en Linux, dit is een Electron-applicatie. Wij installeerden de desktop cliënt op een Debian laptop, zie screenshot 2. Via Github is deze als deb-package te downloaden. Wanneer je deze applicatie opstart, dan ziet deze er vrijwel hetzelfde uit als wat we eerder in de browser zagen. Het verschil is dat je in de desktop applicatie meerdere Rochet.Chat servers kunt instellen. Het chatten en uploaden van bestanden werkt net als in de webbrowser.

Naast de desktop client bestaan er mobiele client voor Andoid en iOS. Wij installeerden een client op een Android tablet. Deze weigert met onze server te connecten, wij vermoeden dat dit komt omdat we een self-signed certificaat gebruiken. Daarnaast bestaan er ook plugins voor onder andere Pidgin en Drupal. Deze hebben wij niet getest. De Drupal plugin biedt een widget die de bezoekers van je Drupal website de gelegenheid biedt direct met je te chatten.

Webhooks en Bots

Je kunt zelf met behulp van webhooks geautomatiseerde binnenkomend en uitgaand berichten via scripts opzetten. Deze scripts schrijf je in ECMAScript 6 (in de wandelgangen ook wel Javascript 6 genoemd).

Nog mooier wordt het met Bots. Met een Bot introduceer je interactie tussen de Rocket.Chat gebruikers en externe systemen. Bij Rocket.Chat zijn Bots externe systemen, die buiten Rocket.Chat gehost worden. Rocket.Chat ondersteunt verschillende Bot frameworks, zoals bBot, Hubot, Botkit, Botpress.

Rocket.Chat is de digitale ontmoetingsplek in de wereld van thuiswerken, waar teams met diverse samenstellingen elkaar ontmoeten, samenwerken en hun belangrijke informatie snel terugvinden. Werken in Rocket.Chat doe je via kanalen waarbij alle communicatie op één  plek geconcentreerd is, informatie en bestanden uitgewisseld worden en besluiten kunnen worden genomen. Rocket.Chat biedt een goede en flexibele omgeving voor kleine en grote organisaties en bespaart veel vergaderingen en e-mailverkeer. De organisatie reageert alert en werkt efficiënt met behulp van de webhook scripts en bots. Kies je de handmatige weg, dan is Rocket.Chat in minder dan een uur geïnstalleerd, kies je voor Snap of Docker, dan is dit eerder een kwestie van minuten. Met Rocket.Chat breng je je organisatie, vriendenkring of familie naar een modern open source platform in eigen huis, waar je zelf de baas bent en blijft over de informatie en de privacy verzekerd is. Probeer het gerust zelf uit.

Share
June 2024
July 2024
No event found!

Related Topics