搬瓦工部署 Mattermost 团队聊天系统完整教程
Mattermost 是一款开源的团队协作和即时通讯平台,被广泛认为是 Slack 的最佳自托管替代品。它提供了频道管理、文件共享、消息搜索、Webhook 集成、视频通话等丰富功能,非常适合团队内部沟通。其免费社区版已经能满足大多数团队的需求。本文将介绍如何在搬瓦工 VPS 上通过 Docker 快速部署 Mattermost。
一、准备工作
1.1 系统要求
- 操作系统:Ubuntu 20.04+(推荐 Ubuntu 22.04)。
- 内存:至少 1GB,推荐 2GB 以上。
- 磁盘空间:至少 10GB。
- Docker:需提前安装,参考 Docker 安装教程。
1.2 创建目录
mkdir -p /opt/mattermost/config
mkdir -p /opt/mattermost/data
mkdir -p /opt/mattermost/logs
mkdir -p /opt/mattermost/plugins
mkdir -p /opt/mattermost/client-plugins
mkdir -p /opt/mattermost/bleve-indexes
mkdir -p /opt/mattermost/database
二、Docker Compose 部署
2.1 创建配置文件
cd /opt/mattermost
cat > docker-compose.yml <<'EOF'
version: '3.8'
services:
db:
image: postgres:16-alpine
container_name: mattermost-db
restart: unless-stopped
environment:
POSTGRES_USER: mmuser
POSTGRES_PASSWORD: mmuser_password
POSTGRES_DB: mattermost
volumes:
- ./database:/var/lib/postgresql/data
mattermost:
image: mattermost/mattermost-team-edition:latest
container_name: mattermost
restart: unless-stopped
depends_on:
- db
ports:
- "8065:8065"
- "8443:8443/udp"
environment:
TZ: Asia/Shanghai
MM_SQLSETTINGS_DRIVERNAME: postgres
MM_SQLSETTINGS_DATASOURCE: "postgres://mmuser:mmuser_password@db:5432/mattermost?sslmode=disable&connect_timeout=10"
MM_BLEVESETTINGS_INDEXDIR: "/mattermost/bleve-indexes"
MM_SERVICESETTINGS_SITEURL: "https://chat.example.com"
volumes:
- ./config:/mattermost/config
- ./data:/mattermost/data
- ./logs:/mattermost/logs
- ./plugins:/mattermost/plugins
- ./client-plugins:/mattermost/client/plugins
- ./bleve-indexes:/mattermost/bleve-indexes
EOF
2.2 设置文件权限
chown -R 2000:2000 /opt/mattermost/config
chown -R 2000:2000 /opt/mattermost/data
chown -R 2000:2000 /opt/mattermost/logs
chown -R 2000:2000 /opt/mattermost/plugins
chown -R 2000:2000 /opt/mattermost/client-plugins
chown -R 2000:2000 /opt/mattermost/bleve-indexes
2.3 启动服务
docker compose up -d
2.4 初始设置
浏览器访问 http://你的服务器IP:8065,首次访问需要创建管理员账户和第一个团队。按照向导完成初始配置即可。
三、Nginx 反向代理
server {
listen 443 ssl http2;
server_name chat.example.com;
ssl_certificate /etc/letsencrypt/live/chat.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/chat.example.com/privkey.pem;
client_max_body_size 50M;
location ~ /api/v[0-9]+/(users/)?websocket$ {
proxy_pass http://127.0.0.1:8065;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 600s;
}
location / {
proxy_pass http://127.0.0.1:8065;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
}
}
四、基本使用
4.1 频道管理
Mattermost 使用频道(Channel)来组织讨论:
- 公开频道:团队所有成员可见和加入。
- 私密频道:仅受邀成员可见。
- 私信:一对一或小组私聊。
4.2 消息功能
Mattermost 支持丰富的消息功能,包括 Markdown 格式、代码高亮、文件附件(最大 50MB)、表情反应、消息线程回复、消息固定和书签等。
4.3 搜索功能
Mattermost 内置全文搜索,支持按发送者、频道、日期等条件过滤搜索结果。Bleve 搜索引擎已在 Docker Compose 中配置启用。
五、集成与扩展
5.1 Webhook
在「系统控制台」→「集成」中启用 Webhook 后,可以创建 Incoming 和 Outgoing Webhook,与外部服务集成。例如接收 GitHub 通知、CI/CD 构建状态等。
5.2 插件市场
Mattermost 提供丰富的插件,常用的包括 GitHub 集成、Jira 集成、日历、投票、待办事项等。在「系统控制台」→「插件管理」→「市场」中安装。
5.3 Bot 账户
可以创建 Bot 账户用于自动化任务。Bot 可以通过 REST API 发送消息、管理频道等。
六、移动客户端
Mattermost 提供 iOS 和 Android 官方客户端。在应用商店搜索「Mattermost」下载后,输入服务器地址和账号信息即可连接。移动端支持推送通知、消息回复和文件分享。
七、系统管理
在「系统控制台」中可以进行全面的系统管理:
- 用户管理:创建/停用用户、分配角色。
- 安全设置:密码策略、会话管理、登录限制。
- 通知设置:邮件通知、推送通知配置。
- 文件存储:本地或 S3 兼容存储。
八、维护与更新
8.1 更新 Mattermost
cd /opt/mattermost
docker compose pull
docker compose down
docker compose up -d
8.2 备份数据
# 备份数据库
docker exec mattermost-db pg_dump -U mmuser mattermost > mattermost-db.sql
# 备份文件和配置
tar -czf mattermost-backup.tar.gz -C /opt/mattermost config/ data/ plugins/
总结
Mattermost 是替代 Slack 的优秀自托管方案,功能齐全且部署简单。在搬瓦工 VPS 上运行后,团队可以安全高效地进行内部沟通和协作。如果你需要更偏向即时通讯的方案,可以参考 Matrix Synapse 或 Rocket.Chat 教程。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的循环折扣。如遇问题,可前往 搬瓦工官网 提交工单。