What Mattermost Does
- Messaging: Channels (public/private), direct messages, group messages, threads
- Voice & Video: Built-in voice and video calls with screen sharing
- Playbooks: Structured workflows for incident response, onboarding, and release processes
- File Sharing: Drag-and-drop file uploads with preview and search
- Integrations: 200+ integrations via webhooks, slash commands, and plugins
- Search: Full-text search across all messages, files, and channels
- Compliance: Message retention, compliance exports, eDiscovery, and audit logs
- Mobile: Native iOS and Android apps with push notifications
- SSO: SAML, OAuth 2.0, LDAP/AD, and GitLab authentication
Architecture
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Web / Desktop│────▶│ Mattermost │────▶│ PostgreSQL │
│ / Mobile App │ │ Server (Go) │ │ (Data) │
└──────────────┘ └──────┬───────┘ └──────────────┘
│
┌─────────────┼─────────────┐
│ │ │
┌──────┴──┐ ┌─────┴───┐ ┌─────┴───┐
│ MinIO │ │ Elastic │ │ SMTP │
│ (Files) │ │ (Search)│ │ (Email) │
└─────────┘ └─────────┘ └─────────┘Self-Hosting
Docker Compose
services:
mattermost:
image: mattermost/mattermost-team-edition:latest
ports:
- "8065:8065"
environment:
MM_SQLSETTINGS_DRIVERNAME: postgres
MM_SQLSETTINGS_DATASOURCE: postgres://mmuser:mmpass@db:5432/mattermost?sslmode=disable
MM_SERVICESETTINGS_SITEURL: http://localhost:8065
depends_on:
- db
volumes:
- mm-config:/mattermost/config
- mm-data:/mattermost/data
- mm-logs:/mattermost/logs
- mm-plugins:/mattermost/plugins
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: mmuser
POSTGRES_PASSWORD: mmpass
POSTGRES_DB: mattermost
volumes:
- pg-data:/var/lib/postgresql/data
volumes:
mm-config:
mm-data:
mm-logs:
mm-plugins:
pg-data:Key Features
Channels & Organization
Team: Engineering
├── #general — Team-wide announcements
├── #frontend — Frontend discussions
├── #backend — Backend discussions
├── #incidents — Active incident coordination
├── #standup — Daily standups (bot-assisted)
└── Private: #leadership — Management onlyPlaybooks (Workflows)
Pre-built workflows for repeatable processes:
Incident Response Playbook:
1. Create incident channel (auto)
2. Assign commander and communications lead
3. Checklist: Assess severity, notify stakeholders
4. Status updates every 30 min (reminder bot)
5. Retrospective template (post-incident)
6. Archive and timeline export
Release Playbook:
1. Create release channel
2. Feature freeze checklist
3. QA sign-off tasks
4. Deploy steps with verification
5. Rollback procedures
6. Post-release monitoringIntegrations
DevOps:
├── GitHub / GitLab — PR notifications, issue updates
├── Jira — Ticket creation from messages
├── Jenkins / CircleCI — Build notifications
├── PagerDuty — Incident alerts in channels
└── Grafana / Prometheus — Alert forwarding
Productivity:
├── Zoom / Jitsi — Video call integration
├── Google Calendar — Meeting reminders
├── Trello / Asana — Task management
├── Confluence — Doc link previews
└── Custom Webhooks — Any serviceSlash Commands
/jira create [summary] — Create Jira ticket
/github subscribe owner/repo — Get PR/issue notifications
/zoom start — Start a Zoom meeting
/poll "Question" "Option 1" "Option 2" — Create a poll
/standup — Post daily standup updateBot & API
# Post a message via webhook
curl -X POST http://localhost:8065/hooks/your-webhook-id
-H "Content-Type: application/json"
-d '{"text": "Build #123 passed ✅", "channel": "ci-notifications"}'
# REST API
curl http://localhost:8065/api/v4/users/me
-H "Authorization: Bearer YOUR_TOKEN"Mattermost vs Alternatives
| Feature | Mattermost | Slack | Microsoft Teams | Rocket.Chat |
|---|---|---|---|---|
| Open Source | Yes | No | No | Yes |
| Self-hosted | Yes | No | Hybrid | Yes |
| Voice/Video | Built-in | Huddles | Built-in | Built-in |
| Playbooks | Built-in | Workflows (paid) | No | No |
| Compliance | Export/eDiscovery | Enterprise | Enterprise | Basic |
| Mobile | iOS + Android | iOS + Android | iOS + Android | iOS + Android |
| SSO | SAML/LDAP/OAuth | Enterprise | Azure AD | SAML/LDAP |
| Pricing | Free (Team) | Free + $8.75/user | $4/user | Free + paid |
常见问题
Q: Mattermost Team Edition 和 Enterprise Edition 区别? A: Team Edition 是完全免费开源的,包含核心消息、频道、文件共享、Playbooks 和集成功能。Enterprise Edition 增加了高可用、合规导出、SAML SSO、AD/LDAP 群组同步等企业功能。
Q: 可以从 Slack 迁移吗? A: 可以。Mattermost 提供 Slack 导入工具,支持导入频道、消息历史、用户和文件。用户体验和快捷键也与 Slack 高度相似,团队切换成本低。
Q: 对服务器要求? A: 50 用户以内:2 核 4GB RAM。200 用户以内:4 核 8GB。大规模部署建议使用高可用集群配置。
来源与致谢
- GitHub: mattermost/mattermost — 36.1K+ ⭐
- 官网: mattermost.com