在 CentOS 7 上安装 Mattermost 5

Mattermost 是一个开源的在线聊天服务。

Mattermost 由 Mattermost Inc 开发,使用 Golang 和 Javascript 编写。
Mattermost 有一个简单的 Web 界面,可用于管理和即时消息传递。

在本文中,我们将在 CentOS 7 服务器上安装 Mattermost 5.

on it road .com

在 CentOS 7 服务器上安装 Mattermost 5

Mattermost 是一个免费的开源软件。
因此,它可以从 Mattermost 官方下载页面下载。

目前,Mattermost 5.13 可供下载。

使用 wget 命令下载 Mattermost 软件。

[root@mattermost-01 ~]# cd /tmp
[root@mattermost-01 tmp]# wget https://releases.mattermost.com/5.13.1/mattermost-5.13.1-linux-amd64.tar.gz

使用以下命令提取下载的 TAR 文件。

[root@mattermost-01 tmp]# tar -C /opt -xvf mattermost-5.13.1-linux-amd64.tar.gz

为 Mattermost 文件创建存储目录。
该存储目录用于存储 Mattermost 用户发布的文件和图像。

[root@mattermost-01 tmp]# cd
[root@mattermost-01 ~]# mkdir /opt/mattermost/data

为 Mattermost 软件创建操作系统用户和组。

[root@mattermost-01 ~]# useradd --system --user-group mattermost

调整 /opt/mattermost 目录的文件权限和所有权。

[root@mattermost-01 ~]# chown -R mattermost:mattermost /opt/mattermost
[root@mattermost-01 ~]# chmod -R g+w /opt/mattermost

编辑 /opt/mattermost/config/config.json 文件以设置 PostgreSQL 数据库配置。

[root@mattermost-01 ~]# vi /opt/mattermost/config/config.json

搜索“SqlSettings”部分并更新其中的以下指令。

"DriverName": "postgres",
"DataSource": "postgres://mmuser:123@127.0.0.1:5432/mattermost?sslmode=disable&connect_timeout=10",

通过执行 mattermost 命令测试 Mattermost 配置。

[root@mattermost-01 ~]# cd /opt/mattermost/
[root@mattermost-01 mattermost]# sudo -u mattermost ./bin/mattermost
{"level":"info","ts":1563702400.3613825,"caller":"utils/i18n.go:83","msg":"Loaded system translations for 'en' from '/opt/mattermost/i18n/en.json'"}
{"level":"info","ts":1563702400.3616445,"caller":"app/server_app_adapters.go:58","msg":"Server is initializing..."}
{"level":"info","ts":1563702400.3725283,"caller":"sqlstore/supplier.go:224","msg":"Pinging SQL master database"}
{"level":"info","ts":1563702400.683637,"caller":"sqlstore/upgrade.go:105","msg":"The database schema has been set to version 5.13.0"}
{"level":"error","ts":1563702401.0069945,"caller":"app/server_app_adapters.go:125","msg":"SiteURL must be set. Some features will operate incorrectly if the SiteURL is not set. See documentation for details: http://about.mattermost.com/default-site-url"}
{"level":"info","ts":1563702401.0074744,"caller":"filesstore/localstore.go:33","msg":"Able to write files to local storage."}
{"level":"info","ts":1563702401.0109901,"caller":"app/license.go:41","msg":"License key from https://mattermost.com required to unlock enterprise features."}
{"level":"info","ts":1563702401.0120814,"caller":"app/migrations.go:26","msg":"Migrating roles to database."}
{"level":"info","ts":1563702401.0590556,"caller":"sqlstore/post_store.go:1277","msg":"Post.Message supports at most 16383 characters (65535 bytes)"}
{"level":"info","ts":1563702401.0611773,"caller":"app/migrations.go:102","msg":"Migrating emojis config to database."}
{"level":"info","ts":1563702401.1515534,"caller":"mlog/log.go:164","msg":"Starting up plugins"}
{"level":"info","ts":1563702408.3935342,"caller":"mlog/sugar.go:19","msg":"Ensuring Surveybot exists","plugin_id":"com.mattermost.nps"}
{"level":"info","ts":1563702409.0745614,"caller":"mlog/sugar.go:19","msg":"Surveybot created","plugin_id":"com.mattermost.nps"}
{"level":"info","ts":1563702409.0869186,"caller":"mlog/sugar.go:19","msg":"Upgrade detected. Checking if a survey should be scheduled.","plugin_id":"com.mattermost.nps"}
{"level":"info","ts":1563702409.0896227,"caller":"app/server.go:213","msg":"Current version is 5.13.0 (5.13.1/Fri Jul 19 18:11:48 UTC 2019/9fecfd5ad41cd2f29fcbf72a842fe594a5d9423a/1ab74b3ea1137c385e03a9982dce917a4128f903)"}
{"level":"info","ts":1563702409.0897117,"caller":"app/server.go:214","msg":"Enterprise Enabled: true"}
{"level":"info","ts":1563702409.0897608,"caller":"app/server.go:216","msg":"Current working directory is /opt/mattermost"}
{"level":"info","ts":1563702409.0898397,"caller":"app/server.go:217","msg":"Loaded config","source":"file:///opt/mattermost/config/config.json"}
{"level":"info","ts":1563702409.0997791,"caller":"mlog/sugar.go:19","msg":"Scheduling next survey for Aug 11, 2019","plugin_id":"com.mattermost.nps"}
{"level":"error","ts":1563702409.1200254,"caller":"plugin/hclog_adapter.go:60","msg":"reading plugin stderr","plugin_id":"com.mattermost.nps","wrapped_extras":"errorread |0: file already closed"}
{"level":"error","ts":1563702409.122352,"caller":"mlog/log.go:172","msg":"RPC call OnConfigurationChange to plugin failed.","plugin_id":"com.mattermost.nps","error":"connection is shut down"}
{"level":"error","ts":1563702409.2013958,"caller":"mlog/log.go:172","msg":"RPC call OnConfigurationChange to plugin failed.","plugin_id":"com.mattermost.nps","error":"connection is shut down"}
{"level":"info","ts":1563702409.2474277,"caller":"jobs/workers.go:68","msg":"Starting workers"}
{"level":"info","ts":1563702409.247602,"caller":"app/server.go:413","msg":"Starting Server..."}
{"level":"info","ts":1563702409.2494857,"caller":"jobs/schedulers.go:72","msg":"Starting schedulers."}
{"level":"info","ts":1563702409.2829065,"caller":"app/server.go:479","msg":"Server is listening on [::]:8065"}
{"level":"info","ts":1563702409.3070872,"caller":"app/web_hub.go:75","msg":"Starting 2 websocket hubs"}

为 Mattermost 创建一个 systemd 服务单元。

[root@mattermost-01 mattermost]# cd
[root@mattermost-01 ~]# vi /usr/lib/systemd/system/mattermost

并定义服务单元指令如下。

[Unit]
Description=Mattermost
After=syslog.target network.target postgresql-11.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

启用并启动 mattermost.service 。

[root@mattermost-01 ~]# systemctl enable mattermost.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mattermost.service to /usr/lib/systemd/system/mattermost.service.
[root@mattermost-01 ~]# systemctl start mattermost.service

在 Linux 防火墙中允许 Mattermost 服务端口。

[root@mattermost-01 ~]# firewall-cmd --permanent --add-port=8065/tcp
success
[root@mattermost-01 ~]# firewall-cmd --reload
success

在客户端浏览器中浏览 URL http://mattermost-01.onitroad.com:8065.

输入电子邮件地址、用户名和密码以注册 Mattermost。

单击创建帐户。

单击创建新团队。

输入团队名称,然后单击下一步 >。

在此处设置团队 URL,然后单击完成。

我们现在位于 Mattermost Web 界面的仪表板。

单击下一步。

我们现在处于 Mattermost 服务器的默认频道。

让我们在这个频道中发送一些消息进行测试。

我们已经在 CentOS 7 服务器上成功安装了 Mattermost 5.

在 CentOS 7 上安装 PostgreSQL

在标准 yum 存储库中,只有 PostgreSQL 9.2 可用。
因此,要安装最新版本的 PostgreSQL,我们必须安装 PostgreSQL yum repoistory 。

可以从 PostgreSQL 官方下载页面获得各种 Linux 发行版的 Yum 存储库。

安装 PostgreSQL yum 仓库如下:

[root@mattermost-01 ~]# rpm -ivh https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Retrieving https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
warning: /var/tmp/rpm-tmp.nzDSUU: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:pgdg-redhat-repo-42.0-4          ################################# [100%]

同一个 PostgreSQL 包为各种版本的 PostgreSQL 数据库提供了 yum 存储库。

因此,我们将禁用 11 版以外的 PostgreSQL yum 存储库,如下所示。

[root@mattermost-01 ~]# yum-config-manager --disable pgdg10 pgdg94 pgdg95 pgdg96

为 PostgreSQL 存储库构建 yum 缓存。

[root@mattermost-01 ~]# yum makecache fast

使用 yum 命令安装 PostgreSQL 客户端和服务器包。

[root@mattermost-01 ~]# yum install -y postgresql11 postgresql11-server

初始化 PostgreSQL 数据库实例如下。

[root@mattermost-01 ~]# /usr/pgsql-11/bin/postgresql-11-setup initdb
Initializing database ... OK

编辑 pg_hba.conf 文件以允许基于 md5 的用户身份验证。

[root@mattermost-01 ~]# vi /var/lib/pgsql/11/data/pg_hba.conf

找到以下指令:

host    all             all             127.0.0.1/32            ident

并将其更新为:

host    all             all             127.0.0.1/32            md5

启用并启动 PostgreSQL 服务。

[root@mattermost-01 ~]# systemctl enable postgresql-11.service
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-11.service to /usr/lib/systemd/system/postgresql-11.service.
[root@mattermost-01 ~]# systemctl start postgresql-11.service

以 postgres 用户身份连接并为 admin 用户设置密码。

[root@mattermost-01 ~]# su - postgres
-bash-4.2$ psql
psql (11.4)
Type "help" for help.
postgres=# ALTER USER postgres WITH PASSWORD '123';
ALTER ROLE

创建 Mattermost 数据库。

postgres=# CREATE DATABASE mattermost;
CREATE DATABASE

创建 Mattermost 用户。

postgres=# CREATE USER mmuser WITH PASSWORD '123';
CREATE ROLE

将mattermost 数据库的所有权限授予 mmuser 。

postgres=# GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;
GRANT

从 psql 退出并从 postgres 用户注销。

postgres=# \q
-bash-4.2$ exit
logout

PostgreSQL 11 已安装在 CentOS 7 服务器上。

日期:2020-09-17 00:16:40 来源:oir作者:oir