I've used Slack for team communication but I'm looking for a new collaboration tool that allows advanced permissions.
- Enable/disable DMs.
- Private room, where only allowed members can communicate but still can't send DMs if it's disabled.
I'm considering Mattermost or RocketChat. Does anyone have experience with them? Otherwise, any recommendations?
I have a background in ChatOps on Slack and Mattermost; one of my clients had a few concerns about how things were done on Slack, so I needed to find an alternative to migrate into. After some evaluations and trials, we agreed on Mattermost.
We had many integrations mainly driven by inbound and outbound webhooks, besides those standard ones like GitHub integrations and so on.
Also, it was crucial to keep the same look and feel so people could use their Slack themes as is.
Because data ownership especially when it comes to files sent within chat sessions is a big deal, I've made the following config:
⇢ Mattermost runs on computing instances on Oracle Cloud (you can run one or more instances and put the load balancer in front of your backend sets, otherwise you can go with OpenResty/nginx)
⇢ Chat data is stored in Oracle Cloud's MySQL Database
⇢ Files were stored on S3-compatible storage implemented using MinIO (https://min.io/), you need a minimum of 4 computing instances to implement a cluster.
⇢ OpenResty that I used for upstream load balancing was also responsible for handling webhooks and bots, written in Lua (OpenResty is nginx+LuJIT)
Mattermost is extremely well documented on its own website and on IBM ChatOps documentation, so installing and upgrading/updating it is a very smooth experience.
Depends on what you wanna achieve, Slack isn't ready to be installed on your private serves for example, so you may chose RocketChat/Mattermost over Slack. Which is also good in case if you wanna control upgrades, where the Slack way often can bring you something new which you don't like at all.