如何在 Debian 11 上安装 Mattermost如何在 Debian 11 上安装 Mattermost如何在 Debian 11 上安装 Mattermost如何在 Debian 11 上安装 Mattermost
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Debian 11 上安装 Mattermost

本教程适用于这些操作系统版本

  • Debian 11(Bullseye)
  • Debian 10(Buster)

在此页

  1. 先决条件
  2. 安装和配置 MariaDB 数据库服务器
  3. 安装 Mattermost
  4. 为 Mattermost 创建一个 Systemd 服务文件
  5. 将 Nginx 配置为 Mattermost 的反向代理
  6. 访问 Mattermost 网络界面
  7. 结论

Mattermost 是一个免费的开源协作和消息传递平台,在创建时就考虑到了安全性。它是 Discord 或 Slack 的替代品,提供许多有用的功能,包括一对一消息传递、无限搜索历史记录和文件共享功能、双因素授权和通知。它是一个用 Golang 和 React 编写的自托管在线聊天服务。它是专门为组织和公司设计的,允许团队从任何地方安全地进行通信。

在本教程中,我们将向您展示如何在 Debian 11 上安装 Mattermost Chat 服务器。

先决条件

  • 运行 Debian 11 的服务器。
  • 用您的服务器 IP 指向的有效域名。
  • 在服务器上配置了根密码。

安装和配置 MariaDB 数据库服务器

Mattermost 使用 MySQL 或 MariaDB 作为数据库后端。因此,您需要将 MariaDB 服务器安装到您的服务器上。您可以使用以下命令安装它:

apt-get install mariadb-server -y

安装 MariaDB 后,启动 MariaDB 服务并使其在系统重启时启动:

systemctl start mariadb
systemctl enable mariadb

接下来,使用以下命令连接到 MariaDB shell:

mysql

连接后,使用以下命令创建数据库和用户:

MariaDB [(none)]> create database mattermost;
MariaDB [(none)]> create user identified by 'password';

接下来,使用以下命令授予 Mattermost 数据库的所有权限:

MariaDB [(none)]> grant all privileges on mattermost.* to ;

接下来,使用以下命令刷新权限并退出 MariaDB shell:

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

完成后,您可以继续下一步。

安装 Mattermost

首先,使用以下命令为 Mattermost 创建一个专用用户:

useradd --system --user-group mattermost

接下来,使用以下命令下载最新版本的 Mattermost:

wget https://releases.mattermost.com/6.0.2/mattermost-6.0.2-linux-amd64.tar.gz

下载完成后,使用以下命令解压缩下载的文件:

tar -xvzf mattermost-6.0.2-linux-amd64.tar.gz

接下来,使用以下命令将提取的目录移动到 /opt:

mv mattermost /opt

接下来,使用以下命令为 mattermost 创建一个数据目录:

mkdir /opt/mattermost/data

接下来,使用以下命令更改最重要目录的所有权:

chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost

接下来,使用以下命令编辑 config.json 文件:

nano /opt/mattermost/config/config.json

找到以下几行:

    "DriverName": "postgres",
    "DataSource": "postgres://mmuser:/mattermost_test?sslmode=disable&connect_timeout=10",

并且,根据您的数据库设置将它们替换为以下行:

"DriverName": "mysql",
"DataSource": "mattermost:(127.0.0.1:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",

完成后保存并关闭文件。

为 Mattermost 创建系统服务文件

接下来,您需要为 Mattermost 创建一个 systemd 服务文件。您可以使用以下命令创建它:

nano /etc/systemd/system/mattermost.service

添加以下行:

[Unit]
Description=Mattermost
After=syslog.target network.target mysqld.service

[Service]
Type=notify
WorkingDirectory=/opt/mattermost
User=mattermost
ExecStart=/opt/mattermost/bin/mattermost
PIDFile=/var/spool/mattermost/pid/master.pid
TimeoutStartSec=3600
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

保存并关闭文件,然后重新加载 systemd 守护进程以应用更改:

systemctl daemon-reload

接下来,启动 Mattermost 并使其在系统重启时启动:

systemctl start mattermost
systemctl enable mattermost

接下来,使用以下命令验证 Mattermost 的状态:

systemctl status mattermost

您将获得以下输出:

? mattermost.service - Mattermost
     Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-11-12 13:56:25 UTC; 4s ago
   Main PID: 2888 (mattermost)
      Tasks: 31 (limit: 4679)
     Memory: 273.3M
        CPU: 12.191s
     CGroup: /system.slice/mattermost.service
             ??2888 /opt/mattermost/bin/mattermost
             ??2915 plugins/com.mattermost.plugin-channel-export/server/dist/plugin-linux-amd64
             ??2925 plugins/playbooks/server/dist/plugin-linux-amd64
             ??2931 plugins/focalboard/server/dist/plugin-linux-amd64

Nov 12 13:56:24 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:24.681 Z","level":"info","msg":"Scheduling next survey for Dec 3, 2>
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.064 Z","level":"info","msg":"Post.Message has size restrictions">
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.084 Z","level":"info","msg":"info [2021-11-12 13:56:25.083 Z] co>
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.131 Z","level":"info","msg":"\n    -- collation of mattermost's >
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.491 Z","level":"info","msg":"debug [2021-11-12 13:56:25.488 Z] i>
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.777 Z","level":"info","msg":"info [2021-11-12 13:56:25.777 Z] Se>
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.963 Z","level":"info","msg":"Starting Server...","caller":"app/s>
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.964 Z","level":"info","msg":"Server is listening on [::]:8065",">
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.964 Z","level":"info","msg":"Sending systemd READY notification.>
Nov 12 13:56:25 debian11 systemd[1]: Started Mattermost.

配置 Nginx 作为 Mattermost 的反向代理

默认情况下,Mattermost 在端口 8065 上侦听。因此,最好将 Nginx 安装和配置为反向代理以在端口 80 上访问 Mattermost。首先,使用以下命令安装 Nginx:

apt-get install nginx -y

安装 Nginx 后,使用以下命令创建 Nginx 虚拟主机配置文件:

nano /etc/nginx/conf.d/mattermost.conf

添加以下行:

upstream mattermost {
   server localhost: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 mattermost.example.com;

   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://mattermost;
   }

   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://mattermost;
   }
}

保存并关闭文件,然后使用以下命令验证 Nginx 配置是否存在任何语法错误:

nginx -t

您应该看到以下输出:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

接下来,启动 Nginx 服务以应用更改:

systemctl start nginx

您还可以使用以下命令验证 Nginx 的状态:

systemctl status nginx

您应该得到以下输出:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-11-12 13:57:02 UTC; 1min 12s ago
       Docs: man:nginx(8)
    Process: 3384 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 3392 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 3602 (nginx)
      Tasks: 3 (limit: 4679)
     Memory: 6.6M
        CPU: 55ms
     CGroup: /system.slice/nginx.service
             ??3602 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??3604 nginx: worker process
             ??3605 nginx: worker process

Nov 12 13:57:01 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 12 13:57:02 debian11 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Nov 12 13:57:02 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

此时,Nginx 已安装并配置为 Mattermost 的反向代理。您现在可以继续下一步。

访问 Mattermost Web 界面

现在,打开您的网络浏览器并使用 URL http://mattermost.example.com 访问 Mattermost 网络界面。您将被重定向到以下页面:

提供您的管理员电子邮件地址、用户名、密码,然后单击“创建帐户”按钮。您应该会看到以下页面:

现在,单击转到系统控制台。您将被重定向到 Mattermost 仪表板,如下所示:

结论

恭喜!您已经在 Debian 11 上成功安装了带有 Nginx 作为反向代理的 Mattermost。您现在可以在您的组织中实施 Mattermost 并允许团队从任何地方相互通信。

©2015-2025 艾丽卡 support@alaica.com