Mattermost 是一款开源的在线聊天服务软件。Mattermost 是由 Mattermost Inc 开发,用 Golang 和Javascript 编写。Mattermost 被设计为企业的内部聊天服务器,并作为Slack的替代品进行销售。
Mattermost 有一个简单的Web界面,可用于系统管 理和即时通信。除此之外,针对 Mattermost 聊天服务器,也有各种桌面和移动应用程序供用户选择。
本文将详细演示如何在 CentOS 7 系统安装 Mattermost 5,并安装 PostgreSQL 11 作为 Mattermost 的数据库服务器。
Mattermost 目前的稳定版为 5.13.1,具有如下特性:
- 加密的推送通知
- 无限的搜索记录
- 高级访问控制
- 支持多节点数据库部署
- 免费和私有云就绪
- 自定义表情符号
- 支持插件
- 基于单点登录的SMAL
- 文件共享
- 1 对 1 以及群组消息支持
- 支持多种语言
- 基本角色的权限管理
- 语音/视频会议
1] Mattermost 5 系统需求
以下是 Mattermost 5 服务器基本要求。这里只给出了用于演示系统需求,如果想要正式部署 Mattermost 5 服务器,则可以在其官方网站上查看 Mattermost 详细的系统需求。
- CPU – 单核
- 内存 – 2 GB
- 操作系统 – CentOS 7+
- 数据库软件 – MySQL 5.6,5.7,8 / PostgreSQL 9.4+
2] CentOS 7 系统安装和配置 PostgreSQL 11
目前标准 yum 软件库中提供的 PostgreSQL 版本为 9.2,为了能够使用 Mattermost 5,我们将安装最新版的 PostgreSQL 11。安装方法也比较简单,就是先安装 PostgreSQL 的官方软件库,然后再通过 yum 命令安装即可。命令如下:
# yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm # yum install postgresql11 postgresql11-server
安装完成后,使用如下命令初始 PostgreSQL 数据库:
# /usr/pgsql-11/bin/postgresql-11-setup initdb
修改 PostgreSQL 的配置文件””,将认证方式设置为 md5 加密:
host all all 127.0.0.1/32 ident
//修改为
host all all 127.0.0.1/32 md5
之后启动 PostgreSQL 服务器:
# systemctl enable postgresql-11 # systemctl start postgresql-11
然后切换成”postgres”用户并设置管理密码,示例起见,密码设置为”rultr”:
# su - postgres -bash-4.2$ psql psql (11.4) Type "help" for help. postgres=# ALTER USER postgres WITH PASSWORD 'rultr'; ALTER ROLE
最后,创建 Mattermost 所使用的数据库”mattermost”、用户”mmuser”并授权:
postgres=# CREATE DATABASE mattermost; CREATE DATABASE postgres=# CREATE USER mmuser WITH PASSWORD 'mattermost'; CREATE ROLE postgres=# GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser; GRANT postgres=# \q -bash-4.2$ exit logout
至此,PostgreSQL 11 安装配置成功。
3] CentOS 7 系统安装和配置 Mattermost 5
Mattermost 分为开源版(Team 版 MIT应用许可)和企业版,一般来说开源版就可以满足多数应用场景,如有更高级的应用需求,可以尝试企业版。
同 Go 语言开发的大多数应用一样,Mattermost 下载软件包后就可以直接运行,不必再安装其他依赖软件包。软件包下载完成后,只需要对 Mattermost进行简单配置就可以正常使用了。
首先,下载软件包并解压,注意解压目录可以是任意的,方便起见,我将软件包置于根目录下:
# wget https://releases.mattermost.com/5.13.1/mattermost-5.13.1-linux-amd64.tar.gz # tar -C / -zxvf mattermost-5.13.1-linux-amd64.tar.gz
其次,创建 Mattermost 需要使用的存储目录,这个目录将存储 Mattermost 用户上传的文件、图片等。
# # mkdir /mattermost/data
然后,创建操作 Mattermost 软件的系统用户和组,并将”/mattermost”的属主修改为该用户:
# useradd --system --user-group mattermost # chown -R mattermost:mattermost /mattermost # chmod -R g+w /mattermost
最后,修改配置文件”/mattermost/config/config.json”中数据库连接信息,设置 Mattermost 使用 PostgreSQL 的相关信息,修改内容如下:
"DriverName": "postgres", "DataSource": "postgres://mmuser:mattermost@127.0.0.1:5432/mattermost?sslmode=disable&connect_timeout=10",
Mattermost 支持多种语言,可以在配置文件中设置默认语言为中文,当然也可以安装成功后修改语言选项:
"DefaultServerLocale": "zh-CN", "DefaultClientLocale": "zh-CN",
现在,就可以执行 mattermost 命令来验证程序是否可以正常运行与否了:
# cd /mattermost/bin/ # sudo -u mattermost ./bin/mattermost
如果没有出现报错信息,就表示 Mattermsot 可以正常运行了。
使用方便起见,创建一个”systemd”服务。服务文件”/usr/lib/systemd/system/mattermost.service”,内容如下:
[Unit] Description=Mattermost After=syslog.target network.target postgresql-11.service [Service] Type=notify WorkingDirectory=/mattermost User=mattermost ExecStart=/mattermost/bin/mattermost PIDFile=/var/spool/mattermost/pid/master.pid TimeoutStartSec=3600 LimitNOFILE=49152 [Install] WantedBy=multi-user.target
现在,启动 Mattermost 服务:
# systemctl enable mattermost # systemctl start mattermost
4] Mattermost 的使用
首先,防火墙放行 Mattermost 侦听的端口,默认使用8065端口:
# firewall-cmd --add-port=8065/tcp --zone=public --permanent # firewall-cmd --reload
然后,通过浏览器浏览”http://YOUR_HOST_IP:8065″,就会见到中下页面:
图.1 Mattermost 创建帐户页面
填写邮件、用户名以及密码后,点击”Create Account”按钮创建 Mattermost 管理账户。帐户创建成功后,会进入创建 Team 页面:
图.2 Mattermost 创建 Team 页面
输入 Team 名称”RULTR”后点击”Next >”继续:
图.3 Mattermost 添加 Team 完成
系统会给出新建 Team 的 URL 信息,确认无误后点击”Finish”完成 Team 创建,系统自动跳转至 Team 管理页面:
图.4 Mattermost Team管理页面
现在要做的就是给 Team 添加用户,点击管理页面左侧的菜单,会显示管理工具菜单项,点击”Get Team Invite Link”菜单项,弹出 Team 注册邀请链接,我们通过浏览器访问该链接,注册一个新的用户”Test”:
图.5 通过邀请链接添加 Mattermost 用户
帐户创建完成后,就可以在 Team 中愉快的聊天啦。
图.6 Mattermost 聊天界面
当然,Mattermost 还有其他很多功能,这里就不过多介绍了。有兴趣的朋友可以参考官方文档。