部署MatterMost-開源團隊協作平臺

程序设计实验室發表於2024-08-06

前言

之前的文章有提到部署 MatterMost 的事。

本文來記錄一下。

關於 MatterMost

MatterMost 有點像 Slack 這種協作工具,而且和 GitLab 的整合還不錯,正好我們一直在用 GitLab,所以就部署一個來試試看。

MatterMost 是一款開源的團隊協作和通訊平臺,設計初衷是為企業和組織提供安全、可控的即時訊息解決方案。與其他即時通訊工具相比,MatterMost 具有以下幾個顯著的特點和優勢:

開源和自託管

MatterMost 是開源的,這意味著任何人都可以自由檢視、修改和擴充套件其原始碼。使用者可以選擇自託管,這樣可以完全掌控資料,確保敏感資訊的安全性和隱私性。這對於那些對資料安全有嚴格要求的組織尤其重要。

多平臺支援

MatterMost 支援多種平臺,包括 Windows、macOS、Linux、iOS 和 Android,使用者可以在不同裝置上無縫使用。此外,MatterMost 提供了強大的 Web 端應用,使使用者無需安裝客戶端軟體也能使用其所有功能。

豐富的功能

MatterMost 提供了廣泛的功能來滿足團隊協作的需求,包括:

  • 即時訊息:支援一對一聊天和群組聊天,使用者可以實時交流。
  • 檔案共享:使用者可以在對話中分享檔案,支援多種檔案格式。
  • 視訊會議:整合了視訊會議功能,方便使用者進行面對面的交流。
  • 通知和提醒:靈活的通知設定,確保使用者不會錯過重要資訊。
  • 搜尋功能:強大的搜尋功能,幫助使用者快速找到所需的資訊和檔案。

整合和擴充套件性

MatterMost 擁有豐富的整合功能,可以與多種第三方應用和服務無縫對接,如 Jira、GitHub、Jenkins 等。此外,MatterMost 提供了強大的 API 和外掛系統,開發者可以根據需求開發自定義功能,進一步擴充套件其功能。

安全性

安全性是 MatterMost 的核心優勢之一。它提供了多層次的安全保護措施,包括資料加密、單點登入 (SSO)、多因素認證 (MFA)、角色和許可權管理等,確保使用者資料的安全性。

社群和支援

作為一個開源專案,MatterMost 擁有一個活躍的社群,使用者可以在社群中獲取幫助、分享經驗和建議。MatterMost 還提供了商業支援服務,使用者可以根據需要選擇不同級別的技術支援和服務。

部署 MatterMost

官方文件: https://docs.mattermost.com/install/install-docker.html#deploy-mattermost-on-docker-for-production-use

以下是我的部署過程

把專案拉下來

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

修改 .env 配置

cp env.example .env

修改 DOMAIN 域名配置就行,其他的按需修改

建立目錄並設定許可權

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

docker compose

clone 以及建立幾個資料夾之後的目錄結構是這樣

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

這次沒有修改官方的 compose 配置

而是新增了一個自己的配置 docker-compose.swag.yml

將 mattermost 服務接入到 swag 的網路中

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

啟動

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

接入GitLab SSO

這個是有點折騰的

一開始老是提示 The redirect URI included is not valid.

查了好久資料,還是解決了

首先 MatterMost 裡的文件就是有問題的,不能在使用者個人設定那裡建立 GitLab 應用

而是要進入 GitLab 的管理後臺建立一個全域性應用,才能實現 SSO

然後回撥地址我是新增了這倆

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

怎麼發現的呢?其實 GitLab 本身可以提供 MatterMost 的整合功能,詳見 GitLab 文件: https://docs.gitlab.com/ee/integration/mattermost/

然後我在配置裡啟用了這個功能之後,GitLab 自動給我建立了這個應用,後面我又關閉這個功能,但依然使用這個應用,就成功實現了使用 GitLab 登入 MatterMost 的功能……

小結

好折騰啊

實際上發現 MatterMost 的手機App用不了playbooks?有點雞肋了

然後這類團隊協作工具,也許還是得用 SaaS 服務好一點。

我後面還試了一下 wekan ,結果這介面直接勸退了。

參考資料

  • https://github.com/mattermost/mattermost/issues/18990
  • https://forum.mattermost.com/t/the-redirect-uri-is-not-valid-during-oauth-on-on-new-gitlab-v8-2-2-omnibus-installation/633/2

相關文章