如何在 Rocky Linux 9 上安装 Mattermost如何在 Rocky Linux 9 上安装 Mattermost如何在 Rocky Linux 9 上安装 Mattermost如何在 Rocky Linux 9 上安装 Mattermost
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在 Rocky Linux 9 上安装 Mattermost

发表 admin at 2025年2月28日
类别
  • 未分类
标签

在此页面上

  1. 先决条件
  2. 安装 PostgreSQL 和 Nginx
  3. 打开 HTTP 和 HTTPS 端口
  4. 创建 PostgreSQL 用户和数据库
  5. 下载最重要的
  6. 使用 PostgreSQL 配置 Mattermost
  7. 将 Mattermost 作为 systemd 服务运行
  8. 将 Nginx 设置为反向代理
  9. 使用 Mattermost 创建第一个工作区
  10. 结论

Mattermost 是适合您组织的开源自托管消息系统。它是 Slack 和 Microsoft Teams 等服务的替代方案。 Mattermost 结合了多种功能,包括文件共享、搜索、自动化和众多第三方集成。它是适合您的内部组织和公司的协作平台和消息系统。

本指南教您如何在 Rocky Linux 9 服务器上安装 Mattermost。您将设置 Mattermost,使用 PostgreSQL 作为数据库,Nginx 作为反向代理,然后在 Mattermost 中创建第一个工作区。

先决条件

展望未来,请确保您满足以下要求:

  • Rocky Linux 9 服务器
  • 具有管理员权限的非 root 用户
  • 域名指向服务器IP地址
  • 状态为许可的 SELinux
  • 启用防火墙

安装 PostgreSQL 和 Nginx

在本部分中,您将安装 Mattermost 的依赖项,其中包括 PostgreSQL 服务器、Nginx Web 服务器和 Certbot。您还将添加 EPEL 存储库并启用 PostgreSQL 16 的存储库模块。

首先,运行下面的“dnf”命令将 EPEL 存储库添加到您的系统。

sudo dnf install epel-release -y

然后使用以下命令启用 PostgreSQL 16 存储库模块。

sudo dnf module enable postgresql:16

现在安装 PostgreSQL、Nginx Web 服务器和 Certbot 等依赖项作为 Mattermost 的依赖项。输入“Y”以确认安装。

sudo dnf install postgresql-server postgresql-contrib nginx certbot wget curl

对于 PostgreSQL 服务器,要使其正常工作,请执行以下命令来初始化 PostgreSQL 数据目录。

sudo /usr/bin/postgresql-setup --initdb

接下来,运行下面的“systemctl”命令来启动并启用“postgresql”服务。然后,验证它以确保 PostgreSQL 正在运行。

sudo systemctl enable --now postgresql
sudo systemctl status postgresql

以下输出显示 PostgreSQL 服务器已启用并正在运行。

最后,使用以下命令启动并启用 Nginx Web 服务器。然后,检查 Nginx 服务。

sudo systemctl enable --now nginx
sudo systemctl status nginx

如下所示,Nginx 正在运行并启用。

打开 HTTP 和 HTTPS 端口

安装依赖项后,您需要在系统上打开 HTTP 和 HTTPS 端口。在 Rocky Linux 上,您将使用 firewalld,通过“firewall-cmd”实用程序进行管理。

使用下面的“firewall-cmd”命令在firewalld 上打开HTTP 和HTTPS 服务。添加后,您将看到输出“成功”。

sudo firewall-cmd --add-service={http,https} --permanent

现在使用以下命令重新加载firewalld以应用新规则。

sudo firewall-cmd --reload

最后,使用以下命令检查防火墙上的规则。您将看到在firewalld 中启用了HTTP 和HTTPS 服务。

sudo firewall-cmd --list-all

创建 PostgreSQL 用户和数据库

在本部分中,您将 PostgreSQL 身份验证方法设置为“scram-sha-256”,然后创建一个新的数据库和用户,Mattermost 将通过“psql”或 PostgreSQL shell 使用该数据库和用户。

要更改默认密码身份验证方法,请使用“nano”编辑器打开 PostgreSQL 配置“/var/lib/pgsql/data/pg_hba.conf”。

sudo nano /var/lib/pgsql/data/pg_hba.conf

使用“scram-sha-256”更改本地主机连接的默认身份验证方法,如下所示:

# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local     all     all                     peer
# IPv4 local connections:
host     all     all     127.0.0.1/32     scram-sha-256
# IPv6 local connections:
host     all     all     ::1/128          scram-sha-256

保存文件并退出编辑器。

现在运行下面的“systemctl”命令来重新启动 PostgreSQL 并应用您的更改。

sudo systemctl restart postgresql

配置 PostgreSQL 后,您将为 Mattermost 创建新的数据库和用户。

使用下面的“psql”命令登录到 PostgreSQL 服务器。

sudo -u postgres psql

现在运行以下查询来创建一个新数据库“mattermost”、一个新用户“mmuser”和密码“password”。

CREATE DATABASE mattermost;
CREATE USER mmuser WITH PASSWORD 'password';
GRANT ALL ON DATABASE mattermost TO mmuser;
ALTER DATABASE mattermost OWNER TO mmuser;
GRANT USAGE, CREATE ON SCHEMA PUBLIC TO mmuser;

使用以下命令检查 PostgreSQL 中的数据库和用户列表 - 您将看到数据库“mattermost”和用户“mmuser”已创建。

\l
\du

输入“quit”退出 PostgreSQL 服务器。

接下来,运行下面的“psql”命令,使用“mmuser”登录到数据库“mattermost”的 PostgreSQL 服务器。出现提示时输入您的密码。

sudo -u postgres psql --host=localhost --dbname=mattermost --username=mmuser --password

如果成功,请使用以下查询检查连接状态。您将看到您已使用“mmuser”连接到“mattermost”数据库。

\conninfo

最后,输入“quit”退出。

下载最重要的

现在您已经配置了 PostgreSQL,您将创建一个新用户,下载 Mattermost 源代码,然后配置 Mattermost 安装目录。

下载 Mattermost 之前,请运行以下命令在您的系统上添加新用户“mattermost”。

sudo useradd --system --user-group mattermost

使用“wget”命令下载 Mattermost 源代码,并使用下面的“tar”命令将其解压。 Mattermost 源代码将被提取到“mattermost”目录。

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

将“mattermost”目录移动到“/opt”,并在其顶部创建一个新的“data”目录。在这种情况下,Mattermost 将安装在“/opt/mattermost”目录中。

mv mattermost /opt/
mkdir -p /opt/mattermost/data

最后,运行以下命令将“/opt/mattermost”目录的所有权更改为“mattermost”用户。另外,请确保组“mattermost”具有读写访问权限。

sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod g+rw /opt/mattermost

使用 PostgreSQL 配置 Mattermost

在本部分中,您将使用 PostgreSQL 配置 Mattermost。您将编辑 Mattermost 配置文件“/opt/mattermost/config/config.json”,为 Mattermost 设置域名,然后将 PostgreSQL 数据库添加到 Mattermost。

使用“nano”编辑器打开默认的 Mattermost 配置“/opt/mattermost/config/config.json”。

sudo nano /opt/mattermost/config/config.json

将默认的“SiteURL”更改为您的 Mattermost 域名。在本例中,我们将使用域名“https://space.howtoforge.local”。

"ServiceSettings": {
 "SiteURL": "https://mattermost.howtoforge.local",

移至“SqlSettings”部分并更改数据库配置,如下所示。确保调整数据库名称、用户和密码。

"SqlSettings": {
 "DriverName": "postgres",
 "DataSource": "postgres://mmuser:password@localhost/mattermost?sslmode=disable&connect_timeout=10&binary_parameters=yes",

完成后,保存文件并退出编辑器。

将 Mattermost 作为 systemd 服务运行

现在您已将 Mattermost 与 PostgreSQL 集成,您将为 Mattermost 创建一个新的服务文件。这允许您在后台运行 Mattermost 并通过“systemctl”命令行轻松管理 Mattermost。

使用“nano”编辑器创建新的 systemd 服务文件“/etc/systemd/system/mattermost.service”。

sudo nano /etc/systemd/system/mattermost.service

插入以下配置以将 Mattermost 作为 systemd 服务运行。

[Unit]
Description=Mattermost
After=network.target
After=postgresql.service
BindsTo=postgresql.service
[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
KillMode=mixed
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152
[Install]
WantedBy=multi-user.target

保存并退出文件。

现在运行下面的“systemctl”命令来重新加载 systemd 管理器并应用新的“mattermost”服务。

sudo systemctl daemon-reload

重新加载 systemd 后,运行以下“systemctl”命令来启动并启用“mattermost”服务。然后,验证它以确保服务正在运行。

sudo systemctl enable --now mattermost
sudo systemctl status mattermost

如果一切顺利,您将看到“mattermost”服务正在运行并启用的配置,如下所示:

将 Nginx 设置为反向代理

此时,Mattermost 已在您的 Rocky Linux 服务器上启动并运行。为了使其可访问,您需要将 Nginx 设置为启用安全 HTTPS 的反向代理。

在配置 Nginx Web 服务器之前,请运行以下命令停止 Nginx 服务并从 LetsEncrypt 生成 SSL 证书。请务必使用您的信息更改域名和电子邮件地址。

sudo systemctl stop nginx
sudo certbot --certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email  -d space.howtoforge.local

该过程完成后,您的 SSL 证书将在“/etc/letsencrypt/live/domain.com”目录中可用。

接下来,使用“nano”编辑器创建一个新的 Nginx 配置'/etc/nginx/conf.d/mattermost.conf'。

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

插入以下配置并确保使用您的信息更改域名和 SSL 证书的路径。

upstream backend {
server 127.0.0.1:8065;
keepalive 32;
}
server {
listen 80;
server_name space.howtoforge.local;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name space.howtoforge.local;
http2_push_preload on; # Enable HTTP/2 Server Push
ssl_certificate /etc/letsencrypt/live/mattermost.howtoforge.local/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mattermost.howtoforge.local/privkey.pem;
ssl_session_timeout 1d;
# Enable TLS versions (TLSv1.3 is required upcoming HTTP/3 QUIC).
ssl_protocols TLSv1.2 TLSv1.3;
# Enable TLSv1.3's 0-RTT. Use $ssl_early_data when reverse proxying to
# prevent replay attacks.
#
# @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
ssl_early_data on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
# HSTS (ngx_http_headers_module is required) (15768000 seconds = six 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;
add_header X-Early-Data $tls1_3_early_data;
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 $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 60s;
send_timeout 300s;
lingering_timeout 5s;
proxy_connect_timeout 90s;
proxy_send_timeout 300s;
proxy_read_timeout 90s;
proxy_http_version 1.1;
proxy_pass http://backend;
}
location / {
client_max_body_size 100M;
proxy_set_header Connection "";
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;
proxy_buffers 256 16k;
proxy_buffer_size 16k;
proxy_read_timeout 600s;
proxy_http_version 1.1;
proxy_pass http://backend;
}
}
# This block is useful for debugging TLS v1.3. Please feel free to remove this
# and use the '$ssl_early_data' variable exposed by NGINX directly should you
# wish to do so.
map $ssl_early_data $tls1_3_early_data {
"~." $ssl_early_data;
default "";
}

完成后保存文件并退出编辑器。

接下来,运行下面的'nginx'命令来验证您的 Nginx 语法。如果您的语法正确,您将看到输出“syntax is ok - test is successful”。

sudo nginx -t

最后,运行下面的“systemctl”命令来重新启动 Nginx 服务并应用您的更改。

sudo systemctl restart nginx

使用 Mattermost 创建第一个工作区

打开您的网络浏览器并访问您的 Mattermost 安装,例如“https://space.howtoforge.local”。如果安装成功,您将看到安装向导。

单击“在浏览器中查看”按钮可通过网络浏览器设置 Mattermost。

输入新的管理员用户、电子邮件地址和密码,然后点击“创建帐户”继续。

输入您的组织名称。

目前,您可以跳过与第三方应用程序的集成。

现在点击“完成设置”即可完成 Mattermost 安装。

完成后,您将被重定向到您的第一个 Mattermost 工作区。

结论

恭喜!您已在 Rocky Linux 9 服务器上完成了 Mattermost 的安装。您已将 Mattermost 作为 systemd 服务在后台启动并运行,其中 PostgreSQL 作为数据库,Nginx 作为反向代理。您还使用 HTTPS 保护 Mattermost 并在 Mattermost 中创建了您的第一个工作区。从这里,您可以将 Mattermost 与第三方应用程序(例如 GitHub、GitLab 和 Bitbucket)集成。

©2015-2025 Norria support@norria.com