Mattermost 是一个开源的在线聊天服务。
Mattermost 由 Mattermost Inc 开发,使用 Golang 和 Javascript 编写。
Mattermost 有一个简单的 Web 界面,可用于管理和即时消息传递。
在本文中,我们将在 CentOS 7 服务器上安装 Mattermost 5.
在 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 服务器上。