返回文章列表文章索引阅读全文
STARBLOG / 阅读手记
DevOps

Deploy MatterMost - Open-Source Team Collaboration Platform

MatterMost, an open-source collaboration platform, self-hosted for security and control? Deployment involves fiddling with Docker configurations, and the SSO integration documentation is frustrating. The mobile app isn't available on the Play Store, the interface is off-putting—why bother torturing yourself? SaaS is more hassle-free.

曦远 (DealiAxy)约 16 分钟
目录13 个章节

Preface

As mentioned in previous articles, the topic of deploying MatterMost has come up.

This article aims to document that process.

About MatterMost

MatterMost is somewhat similar to collaboration tools like Slack and integrates quite well with GitLab. Since we've been using GitLab anyway, we decided to deploy it and give it a try.

MatterMost is an open-source team collaboration and communication platform designed to provide secure, controllable instant messaging solutions for enterprises and organizations. Compared to other instant messaging tools, MatterMost has the following notable features and advantages:

Open Source and Self-Hosting

MatterMost is open-source, which means anyone is free to view, modify, and extend its source code. Users can choose to self-host, giving them complete control over their data to ensure the security and privacy of sensitive information. This is particularly important for organizations with strict data security requirements.

Multi-Platform Support

MatterMost supports multiple platforms, including Windows, macOS, Linux, iOS, and Android, allowing users to seamlessly use it across different devices. Additionally, MatterMost provides a powerful web application, enabling users to access all its features without needing to install client software.

Rich Features

MatterMost offers a wide range of features to meet the needs of team collaboration, including:

  • Instant Messaging: Supports one-on-one and group chats, allowing users to communicate in real time.
  • File Sharing: Users can share files within conversations, supporting multiple file formats.
  • Video Conferencing: Integrated video conferencing functionality facilitates face-to-face communication.
  • Notifications and Reminders: Flexible notification settings ensure users don't miss important information.
  • Search Function: A powerful search function helps users quickly find the information and files they need.

Integration and Extensibility

MatterMost boasts rich integration capabilities, seamlessly connecting with various third-party applications and services such as Jira, GitHub, and Jenkins. In addition, MatterMost offers a powerful API and plugin system (插件系统), enabling developers to build custom features based on their needs and further extend its functionality.

Security

Security is one of MatterMost's core strengths. It provides multi-layered security protections, including data encryption, Single Sign-On (SSO), Multi-Factor Authentication (MFA), and role and permission management, to ensure the security of user data.

Community and Support

As an open-source project, Mattermost has a vibrant community where users can seek help, share experiences, and offer suggestions. Mattermost also provides commercial support services, allowing users to choose different levels of technical support and service according to their needs.

Deploying MatterMost

Official documentation: https://docs.mattermost.com/install/install-docker.html#deploy-mattermost-on-docker-for-production-use

Here is my deployment process:

First, clone the project.

git clone https://github.com/mattermost/docker
mv docker mattermost
cd mattermost

Modify the .env configuration.

cp env.example .env

Just modify the DOMAIN configuration for your domain. Other settings can be adjusted as needed.

Create directories and set permissions.

mkdir -p ./volumes/app/mattermost/{config,data,logs,plugins,client/plugins,bleve-indexes}
sudo chown -R 2000:2000 ./volumes/app/mattermost

Docker Compose

After cloning and creating several folders, the directory structure looks like this:

matter-most
├── contrib
├── docs
├── nginx
├── scripts
├── volumes
├── docker-compose.nginx.yml
├── docker-compose.swag.yml
├── docker-compose.without-nginx.yml
├── docker-compose.yml
├── env.example
├── LICENSE
└── README.md

This time, the official Compose configuration was not modified.

Instead, a new custom configuration docker-compose.swag.yml was added

to connect the Mattermost service to the SWAG network.

services:
  postgres:
    container_name: mattermost_pgsql
    networks:
      - default

  mattermost:
    container_name: mattermost
    ports:
      - ${CALLS_PORT}:${CALLS_PORT}/udp
      - ${CALLS_PORT}:${CALLS_PORT}/tcp
    networks:
      - default
      - swag

networks:
  default:
    name: mattermost
  swag:
    external: true

To start the services:

sudo docker compose -f docker-compose.yml -f docker-compose.swag.yml up -d

Integrating GitLab SSO

This was a bit of a hassle.

At first, I kept getting the error The redirect URI included is not valid.

After a lot of research, I finally got it to work.

First of all, the MatterMost documentation itself is a bit misleading. You can't create the GitLab application in your user's personal settings.

Instead, you need to go to the GitLab Admin Area and create a global application to enable SSO.

For the callback URLs, I added these two:

https://mattermost.example.com/signup/gitlab/complete
https://mattermost.example.com/login/gitlab/complete

How did I figure it out? It turns out GitLab itself offers a native integration feature for MatterMost. You can find details in the GitLab documentation: https://docs.gitlab.com/ee/integration/mattermost/

After I enabled this feature in my configuration, GitLab automatically created the application for me. Later, I disabled the feature but continued to use the same application, and I successfully implemented the functionality to log into MatterMost using GitLab...

Summary

Quite troublesome.

Actually, I found that MatterMost's mobile app doesn't support playbooks? That seems a bit like a chicken rib—somewhat not quite useful.

Then for this kind of team collaboration tool, perhaps it's still better to use a SaaS service.

I also tried wekan later, but its interface was so off-putting that it immediately discouraged me.

References

_EOF_

Deploy MatterMost - Open-Source Team Collaboration Platform

本文作者:
程序设计实验室
版权声明:
本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

相关文章

讨论

共 0 条

良言一句三冬暖,恶语伤人六月寒。

加载评论中…