如何在 Debian 10 上安装 Mattermost 团队消息系统
本教程适用于这些操作系统版本
- Debian 11(Bullseye)
- Debian 10(Buster)
在此页
- 第 1 步 - 安装 MySQL 数据库
- 第 2 步 - 为 Mattermost 创建 MySQL 数据库
- 第 3 步 - 添加用户并下载 Mattermost
- 第 4 步 - 配置 Mattermost
- 第 5 步 - 将 Mattermost 设置为服务
- 第 6 步 - 安装 Certbot Letsencrypt
- 第 7 步 - 安装 Nginx 并将其配置为反向代理
- 第 8 步 - 测试
Mattermost 是一个用 Golang 和 React 编程语言编写的开源消息传递系统。它是一个 slack 的替代品,我们可以用它来构建我们自己的消息服务,比如 slack 或 hipchat。
Mattermost 将您的团队沟通带到一个地方,并使其可以在任何地方访问。您可以从桌面、Android 设备和 iPhone 访问它。
在本教程中,我们将向您展示如何在 Debian Buster 10 上安装 Mattermost。我们将使用 MySQL 数据库服务器、Nginx Web 服务器安装 Mattermost,并在最新的 Debian 版本 Buster 10 上将 Mattermost 作为 Systemd 服务运行。
先决条件
对于本教程,我们将在具有 2GB 内存、25 个可用磁盘空间和 2 个 CPU 的 Debian 10 上测试 Mattermost 安装。
我们将要做什么?
- 安装 MySQL 服务器
- 为 Mattermost 创建 MySQL 数据库
- 添加系统用户并下载Mattermost
- 配置 Mattermost
- 将 Mattermost 设置为 Systemd 服务
- 生成 SSL Letsencrypt
- 安装 Nginx 并将其配置为反向代理
- 测试
第 1 步 - 安装 MySQL 数据库
首先,我们将从官方存储库安装 MySQL Server 8.0 到我们的 Debian 服务器。 Sp,我们将添加官方 MySQL 存储库并安装 MySQL 包。
使用下面的 apt 命令将 gnupg2 工具安装到 Debian 服务器。
sudo apt install curl wget gnupg2
使用以下命令为 Debian 系统下载并添加 MySQL 存储库。
wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb
dpkg -i mysql-apt-config_0.8.13-1_all.deb
现在更新所有 Debian 存储库并安装 MySQL 服务器包。
sudo apt update
sudo apt install mysql-server -y
在 MySQL 服务器安装期间,系统会要求您为 MySQL 服务器配置根密码。
键入 MySQL 的根密码并重复。

安装完成后,启动MySQL服务并将其添加到
systemctl start mysql
systemctl enable mysql
至此,Debian Buster 10 上安装了 MySQL Server,并且配置了 MySQL Server 的 root 密码。

第 2 步 - 为 Mattermost 创建 MySQL 数据库
默认情况下,Mattermost 支持两种数据库驱动程序,即 PostgreSQL 和 MySQL 数据库。对于本教程,我们将使用 MySQL 作为 Mattermost 的默认数据库。
在这一步中,我们将为 Mattermost 安装创建一个新的数据库和用户。
使用您的 root 用户和密码登录 MySQL shell,如下所示。
mysql -u root -p
现在为 Mattermost 创建一个新的数据库和用户。我们将使用用户 mmuser 和密码 mmuser-password 创建一个新的数据库 mattermost。
create database mattermost;
create user ;
flush privileges;
现在键入 exit 从 MySQL shell 注销。

结果,为 Mattermost 安装创建了 MySQL 数据库和用户。
第 3 步 - 添加用户并下载 Mattermost
在这一步中,我们将创建一个新的系统用户并下载 Mattermost 源代码。 Mattermost 软件将在名为 mattermost 的用户下运行,它将安装在 /opt/mattermost 目录中。
使用以下命令创建一个名为 mattermost 的新系统用户。
useradd --system --user-group mattermost
现在转到 /opt 目录并使用下面的 curl 命令下载 Mattermost 源代码。
cd /opt/
curl -o mattermost.tar.gz https://releases.mattermost.com/5.21.0/mattermost-5.21.0-linux-amd64.tar.gz
提取 Mattermost 源代码并创建一个新的数据目录。
tar -xf mattermost.tar.gz
mkdir -p /opt/mattermost/data
之后,将 /opt/mattermost 目录的所有权更改为 mattermost 用户并使其可写。
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost
至此,mattermost用户创建完成,Mattermost源码下载到/opt/mattermost目录下。

第 4 步 - 配置 Mattermost
在这一步中,我们将设置 Mattermost 监听地址和数据库。 Mattermost 服务将在默认端口 8065 上的本地 IP 地址上运行,并使用 MySQL 作为数据库系统。
进入/opt/mattermost目录,编辑config目录下的配置文件config.json。
cd /opt/mattermost/
vim config/config.json
在 ListenAddress 选项上,将 IP 地址更改为 127.0.0.1。
"ListenAddress": "127.0.0.1:8065",
一个 SqlSettings,将 DriverName 更改为 mysql,并将 DataSource 更改为我们创建的 MySQL 数据库和用户。
"SqlSettings": {
"DriverName": "mysql",
"DataSource": "dbuser:(localhost:3306)/dbname?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",
保存并关闭。
接下来,使用以下命令初始化 Mattermost 安装。
sudo -u mattermost ./bin/mattermost
以下是您将得到的结果。

结果,Mattermost 在本地 IP 地址 127.0.0.1 和端口 8065 上启动并运行,现在按 Ctrl+c 按钮退出。
第 5 步 - 将 Mattermost 设置为服务
在这一步中,我们将 Mattermost 设置为 systemd 服务,它将在 MySQL 数据库服务运行后在系统启动时自动运行。
现在转到 /lib/systemd/system 目录并创建一个新的服务文件 mattermost.service。
cd /lib/systemd/system/
vim mattermost.service
现在将以下配置粘贴到其中。
[Unit]
Description=Mattermost
After=network.target
After=mysql.service
Requires=mysql.service
[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152
[Install]
WantedBy=multi-user.target
保存并关闭。
接下来,在 Debian 系统上重新加载 systemd 管理器。
systemctl daemon-reload
之后,启动 Mattermost 服务并将其添加到系统引导。
systemctl start mattermost
systemctl enable mattermost

Mattermost 服务已启动并正在运行,使用以下命令检查它。
systemctl status mattermost
以下是您将获得的结果。

结果,Mattermost 服务在 Debian 系统上启动并运行,它会在系统启动时自动运行。
第 6 步 - 安装 Certbot Letsencrypt
在此步骤中,我们将安装 certbot 工具并生成 SSL Letsencrypt。我们将使用来自 Letsencrypt 的 SSL 保护 Mattermost 安装。
使用下面的 apt 命令安装 certbot 工具。
sudo apt install certbot
安装完成后,使用下面的 certbot 命令生成 SSL letsencrypt。
certbot certonly --standalone --agree-tos -m -d mattermost.hakase-labs.io
因此,您的 SSL 证书将在 /etc/letsencrypt/live/mattermost-hakase-labs.io 目录中生成。
第 7 步 - 安装 Nginx 并将其配置为反向代理
在此步骤中,我们将安装 Nginx Web 服务器并将其设置为 Mattermost 服务的反向代理。
使用下面的 apt 命令安装 Nginx。
sudo apt install nginx -y
安装完成后,启动Nginx服务并将其添加到系统引导。
systemctl start nginx
systemctl enable nginx
Nginx Web 服务器已启动并正在运行。
接下来,进入 /etc/nginx 配置目录,为 mattermost 创建一个新的虚拟主机配置。
cd /etc/nginx/
vim sites-available/mattermost
把域名和SSL证书的路径改成你自己的,然后把配置粘贴进去。
upstream backend {
server 127.0.0.1:8065;
keepalive 32;
}
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;
server {
listen 80;
server_name edu.initrc.fun;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name edu.initrc.fun
ssl on;
ssl_certificate /etc/letsencrypt/live/edu.initrc.fun/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/edu.initrc.fun/privkey.pem;
ssl_session_timeout 1d;
ssl_protocols TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;
# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;
location ~ /api/v[0-9]+/(users/)?websocket$ {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
client_max_body_size 50M;
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;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_buffers 256 16k;
proxy_buffer_size 16k;
client_body_timeout 60;
send_timeout 300;
lingering_timeout 5;
proxy_connect_timeout 90;
proxy_send_timeout 300;
proxy_read_timeout 90s;
proxy_pass http://backend;
}
location / {
client_max_body_size 50M;
proxy_set_header Connection "";
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;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_buffers 256 16k;
proxy_buffer_size 16k;
proxy_read_timeout 600s;
proxy_cache mattermost_cache;
proxy_cache_revalidate on;
proxy_cache_min_uses 2;
proxy_cache_use_stale timeout;
proxy_cache_lock on;
proxy_http_version 1.1;
proxy_pass http://backend;
}
}
保存并关闭。
接下来,创建 Nginx 缓存目录并将该目录的所有权更改为默认的 www-data 用户。
mkdir -p /var/cache/nginx
chown -R www-data:www-data /var/cache/nginx
之后,激活 Mattermost 虚拟主机,然后测试 nginx 配置并确保没有错误。
ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/
nginx -t
现在使用下面的 systemctl 命令重新启动 Nginx 服务。
systemctl restart nginx
至此,作为 Mattermost 的反向代理的 Nginx 安装和配置已经完成。并准备好测试 Mattermost 安装。

第 8 步 - 测试
打开您的网络浏览器并在地址栏中输入您的 Mattermost 安装 URL 的域名。我的是:
https://mattermost.hakase-labs.io/
现在您需要创建一个新的第一个 Mattermost 帐户,这将是 Mattermost 管理员。

键入您的用户名、电子邮件和密码的详细信息,然后单击“创建帐户”按钮。
在 Mattermost 上创建一个新的第一团队。

键入您的第一个团队的名称,然后单击“下一步”。

团队 URL 将是团队名称,单击“完成”继续。

您将自动加入默认频道“Off-Topic”和“Town Square”。

结果,在带有 MySQL 数据库和 Nginx Web 服务器的 Debian Buster 10 上的 Mattermost 安装已经成功完成。