Mattermost是一种用编程语言Golang和React编写的开源消息系统。 这是一个松散的选择,我们可以建立自己的短信服务,如松弛或嘻哈。 Mattermost将您的团队沟通交给一个地方,并使其随处可见。 您可以从桌面,Android设备和iPhone访问它。
在本教程中,我将指导您创建自己的Mattermost服务器,该服务器使用PostgreSQL作为数据库系统,Nginx作为Mattermost的反向代理。 我将使用ubuntu 16.04作为操作系统。
前提条件
- Ubuntu 16.04 - 64bit
- 根特权
第1步 - 安装和配置PostgreSQL数据库
Mattermost支持MySQL和PostgreSQL数据库。 我们将使用PostgreSQL作为本教程的主数据库。连接到您的服务器并更新存储库。
通过SSH连接到您的服务器或在终端上登录并更新Ubuntu存储库。
ssh root@192.168.1.110
sudo apt-get update
作为root用户,请使用此apt命令安装PostgreSQL。
sudo apt-get install postgresql postgresql-contrib
安装完成后,登录到postgres用户并输入命令' psql '以登录到postgresql shell。
su - postgres
psql
使用以下命令更改postgres用户密码:
\password postgres
Enter new password:
接下来,我们必须为Mattermost安装配置一个新的数据库和用户。 我将使用密码“ matterpassword ”创建名为“ mattermostdb ”的新数据库和用户“ matteruser ”。 请为安装选择一个安全密码。
使用PostgreSQL查询创建新数据库和用户如下:
CREATE DATABASE mattermostdb;
CREATE USER matteruser WITH PASSWORD 'matterpassword';
授予' matteruser '权限到数据库' mattermostdb '并退出。
GRANT ALL PRIVILEGES ON DATABASE mattermostdb TO matteruser;
\q
第2步 - 安装和配置最重要
我们将安装和配置Mattermost作为普通的Linux用户,而不是root用户。 我们将以用户'事情'运行Mattermost,因此我们需要在服务器上创建一个名为“matter”的新的Linux用户。
创建新的“ 事务 ”用户和密码。
useradd -m -s /bin/bash matter
passwd matter
'matter'用户创建,现在登录到用户并下载最新的Mattermost版本与wget。
su - matter
wget https://releases.mattermost.com/3.4.0/mattermost-3.4.0-linux-amd64.tar.gz
提取Mattermost文件,您将看到新的目录'mattermost',使用cd命令输入该目录。
tar -xzvf mattermost-3.4.0-linux-amd64.tar.gz
cd mattermost/
接下来,创建一个用于存储用户文件的新数据目录,然后用vim编辑最重要的配置文件“ config / config.json ”。
mkdir data/
vim config/config.json
我们将在Nginx反向代理之后运行,所以最好配置Mattermost来监听本地IP地址。 在“ ServiceSettings ”块中,将localhost IP地址添加到第4行的配置。
"ListenAddress": "127.0.0.1:8065",
现在转到第48行的“ SqlSettings ”。将“ DriverName ”和“ DataSource ”配置更改为使用PostgreSQL数据库,并配置如下:
"DriverName": "postgres",
"DataSource": "postgres://matteruser:matterpassword@127.0.0.1:5432/mattermostdb?sslmode=disable&connect_timeout=10",
注意:
matteruser = postgresql用户。
matterpassword =密码。
mattermostdb =数据库。
保存并退出。
完成后,转到bin目录并运行。
cd bin/
./platform
您将看到最重要的是在本地主机IP上运行,端口8065现在。
按Ctrl + c退出。
第3步 - 配置Mattermost Systemd服务
转到systemd系统目录并创建一个新的最重要的服务文件。
cd /etc/systemd/system/
vim mattermost.service
粘贴配置如下:
[Unit]
Description=Mattermost is an open source, self-hosted Slack-alternative
After=syslog.target network.target
[Service]
Type=simple
User=matter
Group=matter
ExecStart=/home/matter/mattermost/bin/platform
PrivateTmp=yes
WorkingDirectory=/home/matter/mattermost
Restart=always
RestartSec=30
LimitNOFILE=49152
[Install]
WantedBy=multi-user.target
保存并退出。
重新加载systemd守护程序并启动我们上面创建的Mattermost服务。
systemctl daemon-reload
systemctl start mattermost
确保没有错误。 检查Mattermost服务是否正在运行。
netstat -plntu
systemctl status mattermost
第4步 - 安装和配置Nginx
在这一步中,我们将安装Nginx并配置Nginx作为Mattermost的反向代理。 我们将把端口8056映射到HTTP和HTTPS端口。
使用此apt命令从Ubuntu存储库安装Nginx。
sudo apt-get install nginx
现在去Nginx配置目录并创建SSL子目录。
cd /etc/nginx/
mkdir ssl/; cd ssl/
使用OpenSSL生成新的自签名SSL证书文件,并更改私钥的权限。
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/mattermost.crt -keyout /etc/nginx/ssl/mattermost.key
chmod 400 mattermost.key
在“ sites-available ”目录中为Mattermost创建一个新的虚拟主机文件。
cd /etc/nginx/sites-available/
vim mattermost
粘贴虚拟主机配置如下:
server {
listen 80;
server_name mattermost.mydomain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name mattermost.mydomain.com;
ssl on;
ssl_certificate /etc/nginx/ssl/mattermost.crt;
ssl_certificate_key /etc/nginx/ssl/mattermost.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
location / {
gzip off;
proxy_set_header X-Forwarded-Ssl on;
client_max_body_size 50M;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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_pass http://127.0.0.1:8065;
}
}
将域名更改为您自己的域,保存并退出。
通过在“ sites-enabled ”目录中创建一个符号链接到最重要的文件来激活虚拟主机。
ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/
测试Nginx配置,并确保没有错误,并重新启动nginx。
nginx -t
systemctl restart nginx
第5步 - 测试
打开您的网页浏览器并访问最重要的域名,在我的情况下: mattermost.mydomain.com 。
您将被自动重定向到HTTPS连接。
先创建一个新帐户,点击“ 创建帐户 ”。
然后,您可以看到创建新团队的链接或访问管理/系统控制台。
点击“ 转到系统控制台 ”,您将看到以下系统控制台仪表板:
单击“ 创建新团队 ”,输入您的团队名称,然后单击“ 下一步 ”。 然后配置团队URL,然后单击“ 完成 ”按钮。
最后你会看到团队仪表板。
最重要的团队聊天。
Ubuntu 16.04上的PostgreSQL和Nginx Web服务器已经成功安装。