Cài đặt MatterMost trên Docker với SWAG
MatterMost là một nền tảng giao tiếp nội bộ mã nguồn mở, tương tự như Slack, với khả năng tích hợp tốt với GitLab – phù hợp với môi trường hiện tại đang sử dụng công cụ này.
Đặc điểm nổi bật
- Tự chủ về dữ liệu: Vì là mã nguồn mở, người dùng có thể tự triển khai và kiểm soát hoàn toàn hệ thống, đảm bảo an toàn thông tin nhạy cảm.
- Hỗ trợ đa nền tảng: Có ứng dụng cho Windows, macOS, Linux, iOS và Android, cùng giao diện web đầy đủ chức năng.
- Tính năng phong phú: Gửi tin nhắn tức thì, chia sẻ tệp, họp video, thông báo linh hoạt, tìm kiếm nhanh trong lịch sử trò chuyện.
- Tích hợp sâu rộng: Hỗ trợ API và plugin để kết nối với Jira, GitHub, Jenkins, và nhiều dịch vụ khác.
- An ninh cao: Hỗ trợ xác thực hai yếu tố (MFA), SSO, mã hóa dữ liệu, phân quyền chi tiết theo vai trò.
- Cộng đồng hỗ trợ: Có cộng đồng phát triển sôi động, kèm dịch vụ hỗ trợ thương mại nếu cần.
Chuẩn bị môi trường
Sao chép kho mã nguồn:
git clone https://github.com/mattermost/docker
mv docker mattermost
cd mattermost
Sao lưu cấu hình mẫu:
cp env.example .env
Chỉnh sửa .env để thiết lập tên miền chính (DOMAIN) và các tham số khác theo nhu cầu.
Thiết lập thư mục và quyền truy cập
Tạo cấu trúc thư mục cần thiết và cấp quyền phù hợp cho container:
mkdir -p ./volumes/app/mattermost/{config,data,logs,plugins,client/plugins,bleve-indexes}
sudo chown -R 2000:2000 ./volumes/app/mattermost
Cấu hình Docker Compose với SWAG
Thay vì chỉnh sửa file docker-compose.yml gốc, tạo một file bổ sung docker-compose.swag.yml để kết nối MatterMost với mạng của SWAG (dùng để quản lý SSL):
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
Khởi động dịch vụ
Chạy container với cả hai file cấu hình:
sudo docker compose -f docker-compose.yml -f docker-compose.swag.yml up -d
Tích hợp SSO với GitLab
Lỗi thường gặp: The redirect URI included is not valid.
Vấn đề nằm ở cách cấu hình OAuth. Theo tài liệu chính thức, không thể tạo ứng dụng GitLab từ cài đặt người dùng. Cần truy cập vào Admin Area của GitLab để tạo ứng dụng toàn cục.
Thêm hai URL callback:
https://mattermost.example.com/signup/gitlab/completehttps://mattermost.example.com/login/gitlab/complete
Để biết được các endpoint này, có thể tham khảo hướng dẫn tích hợp của GitLab: GitLab → MatterMost Integration
Sau khi bật tính năng tích hợp trong GitLab, hệ thống sẽ tự động tạo ứng dụng. Sau đó tắt tính năng nhưng vẫn giữ lại ứng dụng đã tạo — điều này giúp SSO hoạt động ổn định.
Nhận xét cuối cùng
Việc triển khai khá phức tạp, đặc biệt với phần cấu hình SSO và mạng lưới. Ngoài ra, ứng dụng di động của MatterMost không hỗ trợ đầy đủ tính năng Playbooks – khiến trải nghiệm hạn chế.
Các công cụ dạng SaaS như Slack hay Microsoft Teams vẫn có lợi thế về trải nghiệm người dùng và tích hợp liền mạch hơn.
Thử nghiệm thêm Wekan nhưng giao diện quá cũ kỹ, gây khó chịu nên tạm bỏ cuộc.