更多云服务器知识,尽在hostol.com
你的团队,是否也正"寄居"在别人的"数字屋檐"下?
你们的每一次头脑风暴、每一次代码评审、每一次深夜的灵感碰撞、甚至每一次关于午饭吃什么的摸鱼闲聊,都以文字、图片和文件的形式,静静地流淌在Slack、钉钉或Discord的服务器上。
这很方便,不是吗?
但你有没有想过,你正在把团队最宝贵的"大脑中枢 "和"集体记忆 ",存放在一个你无法完全掌控的、随时可能因为"服务条款变更"或"免费套餐限制"而让你陷入被动的"出租屋"里?
- Slack的免费版,只能保留最近90天的消息记录,那些沉淀下来的宝贵讨论,转瞬即逝。
- 你的所有内部文件、代码片段、甚至账号密码,都在第三方服务器上"裸奔",存在着潜在的隐私和安全风险。
- 付费版的价格,对于一个刚刚起步的小团队来说,是一笔不小的开销。
那么,有没有一种方法,能让我们拥有一个100%私有、数据永不外泄、消息永久保存、功能无限扩展、并且成本极低的团队"数字客厅"呢?
当然有!今天,我们将亲手,为我们的团队,建造一座属于我们自己的、固若金汤的"数字总部大楼 "。我们的建造工具,就是开源世界里,最受欢迎的Slack替代品------Mattermost。
"蓝图"展示:为什么是Mattermost?
Mattermost,不仅仅是一个"聊天软件"。它是一个完整的、开源的、可以被你私有化部署的"团队协作平台"。
- 它像什么? 它就像一个你可以自己动手建造和运营的"私人会所"。这个会所里,有公开的"大厅"(公开频道),有需要凭会员卡才能进入的"VIP包间"(私有频道),还可以进行"一对一的密谈"(私聊)。
- 核心优势:
- 数据主权,绝对安全: 所有的聊天记录、所有上传的文件,都只存放在你自己的服务器上。你的数据,只属于你。
- 无限制: 无限的消息历史,无限的用户数,无限的频道数,无限的集成......唯一的限制,就是你服务器的硬盘大小。
- 生态强大: 它拥有和Slack一样强大的Webhook和机器人集成能力,可以轻松地与你的Gitea、Jenkins、监控系统等所有工具链,打通关节。
- 全平台客户端: 它拥有精美的Windows, macOS, Linux, Android, iOS客户端,体验不输任何商业软件。
"施工方案":再次请出我们的"总包工头"------Docker Compose
和Nextcloud一样,Mattermost也是一个由"应用服务"和"数据库服务"组成的复杂系统。手动安装,会让你陷入绝望。所以,我们再次请出最可靠的"总包工头"------Docker Compose。
第一步:绘制"总施工蓝图" (docker-compose.yml
)
SSH登录到你准备好的、已经安装了Docker和Docker Compose的腾讯云轻量服务器 上。一台2核4G的服务器,已经能很好地支撑一个几十人的团队流畅使用了。
创建一个项目文件夹,比如my-mattermost
,然后在里面,创建docker-compose.yml
文件。
Bash
mkdir -p my-mattermost/volumes/mattermost/{config,data,logs,plugins,client/plugins}
mkdir -p my-mattermost/volumes/postgres
cd my-mattermost
nano docker-compose.yml
将下面的"总蓝图",完整地复制进去:
YAML
version: '3.8'
services:
# --- PostgreSQL 数据库服务 ---
postgres:
image: postgres:13-alpine
container_name: mattermost_db
restart: always
volumes:
- ./volumes/postgres:/var/lib/postgresql/data
environment:
- POSTGRES_USER=mmuser
- POSTGRES_PASSWORD=YOUR_STRONG_DATABASE_PASSWORD # 务必修改成一个超强密码
- POSTGRES_DB=mattermost
# --- Mattermost 应用服务 ---
mattermost:
image: mattermost/mattermost-team-edition:latest
container_name: mattermost_app
restart: always
ports:
- "8065:8065" # 将服务器的8065端口,映射给Mattermost
volumes:
- ./volumes/mattermost/config:/mattermost/config
- ./volumes/mattermost/data:/mattermost/data
- ./volumes/mattermost/logs:/mattermost/logs
- ./volumes/mattermost/plugins:/mattermost/plugins
- ./volumes/mattermost/client/plugins:/mattermost/client/plugins
environment:
- MM_SQLSETTINGS_DRIVERNAME=postgres
- MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:YOUR_STRONG_DATABASE_PASSWORD@postgres:5432/mattermost?sslmode=disable&connect_timeout=10 # 务必和上面保持一致
depends_on:
- postgres
蓝图解读:
- 我们创建了两个服务:
postgres
(数据库)和mattermost
(应用本身)。 volumes
: 我们提前创建了几个文件夹,并把它们挂载到容器里。这保证了你的所有聊天记录、配置文件、上传的文件,都持久化地保存在你自己的服务器上。environment
: 这是连接"数据库"和"应用"的"秘密电缆 "。请务必,将那两个YOUR_STRONG_DATABASE_PASSWORD
,替换成你自己设定的、同一个超强密码!
第二步:"一键施工"
保存好你的"总蓝图"后,一声令下:
Bash
sudo docker-compose up -d
Docker Compose会立刻开始工作。几分钟后,你的"数字总部大楼",就已拔地而起。
第三步:装修"大厦正门"------配置Nginx反向代理和SSL
现在,你的Mattermost,正在服务器的8065
端口上运行。我们需要为它,配置一个正式的、安全的、比如chat.yourdomain.com
这样的"正门"。
在服务器的宿主机上,安装Nginx,并创建一个新的网站配置文件:
Bash
sudo nano /etc/nginx/sites-available/mattermost
写入以下"门卫工作手册"。注意,这份手册,比我们之前的要复杂一些,因为它需要支持WebSocket这个"实时对讲机"协议!
Nginx
upstream mattermost {
server 127.0.0.1:8065;
}
server {
listen 80;
server_name chat.yourdomain.com; # 换成你自己的域名
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl http2;
server_name chat.yourdomain.com; # 换成你自己的域名
# SSL证书配置,稍后由Certbot自动填写
# ssl_certificate ...
# ssl_certificate_key ...
# 核心的反向代理配置
location / {
proxy_pass http://mattermost;
proxy_set_header Host $http_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;
# --- WebSocket 支持的关键!---
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
手册解读:
upstream
模块:我们先定义了一个叫mattermost
的"内部部门",地址就是我们容器映射出来的127.0.0.1:8065
。proxy_set_header Upgrade $http_upgrade;
和proxy_set_header Connection "upgrade";
:这两行是魔法的核心! 它们相当于你告诉Nginx这位"前台":"嘿,如果访客是想建立一条'实时对讲机 '式的通话(WebSocket),而不是普通的'写信'(HTTP请求),请你务必帮我把这条专线接通,别挂断!"。没有它们,你的Mattermost聊天消息,就会延迟巨大,甚至根本收不到实时更新。
启用配置,并用certbot
为你的chat.yourdomain.com
域名,申请并配置好SSL证书。
第四步:"开业剪彩"------初始化你的Mattermost
现在,万事俱备。 打开你的浏览器,访问你刚刚配置好的、带https
的域名:https://chat.yourdomain.com
。
你会看到Mattermost的欢迎界面。
- 创建你的"创始人"账号: 输入你的邮箱、用户名和密码,创建第一个系统管理员账号。
- 创建你的第一个"公司/团队": 给你的团队起个名字。
- 完成!
一个界面精美、功能强大、完全私有的"团队协作中心",就此诞生!
欢迎入驻,你的"思想殿堂"
看看你刚刚建成的这座"数字总部"。它安全、私密、运行在你自己的服务器上,并且完全由你定义。
在这里,你的每一次讨论,都只属于你们团队自己;你的每一次分享,都沉淀为你团队自己的、可被永久搜索的知识财富;你的每一次集成,都让这座"总部大楼",变得更智能、更自动化。
你,不再是一个平台的"租客",你成了自己团队"数字文化"的"建筑师 "和"守护者"。
现在,去邀请你的伙伴们,入驻这座完全属于你们自己的"思想殿堂"吧。