在Ubuntu 20.04/18.04/Debian 10 Linux上安装Mattermost

时间:2020-02-23 14:32:40  来源:igfitidea点击:

欢迎来到当今关于如何在Debian 10(Buster)/Ubuntu 20.04/18.04使用PostgreSQL数据库服务器上的最重要的教程。
最重要的是一个自托管和开源的在线聊天服务,旨在用作和组织的内部聊天平台。
它是Slack聊天平台的主要替代品之一。

我们将使用PostgreSQL数据库和Nginx Web服务器进行本教程。
所有步骤都很容易遵循,所以只需放松和跟随。

第1步:更新系统

让我们首先确保我们的系统更新。

sudo apt update
sudo apt -y upgrade
sudo apt -y install wget curl vim

建议在升级后重新启动系统。

sudo reboot

设置正确的服务器主机名:

sudo hostnamectl set-hostname chat.theitroad.com --static

第2步:安装PostgreSQL数据库服务器

下一步是安装PostgreSQL数据库服务器:

sudo apt -y install postgresql postgresql-contrib

安装后,PostgreSQL服务器将自动启动。
登录Postgres帐户。

sudo --login --user postgres

启动PostgreSQL交互式终端并创建最棘手/用户的MMUSER'。

psql
CREATE DATABASE mattermost;
CREATE USER mmuser WITH PASSWORD 'StrongDBPassWord';
GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;
\q

退出Postgres帐户。

exit

第3步:创建Mattermost系统用户和组

我们需要设置一个系统用户和组,最重要的是运行服务的。

sudo useradd --system --user-group mattermost

我们可以确认它是一个系统用户,因为它的ID小于1000。

$id mattermost
uid=998(mattermost) gid=998(mattermost) groups=998(mattermost)

第4步:下载并安装Mattermost服务器

使用数据库服务器配置后,我们现在可以下载并安装最近的问题。
首先,访问最重要的下载页面以获取最新版本。

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

提取下载存档:

tar xvf mattermost-5.22.1-linux-amd64.tar.gz

将提取的文件移动到/opt目录。

sudo mv mattermost /opt

创建存储目录,该目录将包含我们最重要的所有文件和图像。

sudo mkdir /opt/mattermost/data

设置正确的所有权和权限。

sudo chown -R mattermost:mattermost /opt/mattermost

为最重要组提供写权限:

sudo chmod -R g+w /opt/mattermost

步骤5:配置Mattermost服务器

在文件中设置数据库驱动程序 /opt/mattermost/config/config.json

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

在"SQLSettings"下,将PostgreSQL数据库设置配置为如下:部分。

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

步骤6:配置SystemD服务

创建近似的系统服务单元。

$sudo vim /etc/systemd/system/mattermost.service

将以下数据填充到文件中。

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

使系统加载新单元。

sudo systemctl daemon-reload

启动并启用最近的服务。

sudo systemctl start mattermost.service
 sudo systemctl enable mattermost.service

检查服务状态以确保运行。

$systemctl status mattermost.service
● mattermost.service - Mattermost
   Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: enabled)
   Active: active (running) since Mon 2019-08-12 12:15:06 CEST; 7s ago
 Main PID: 4116 (mattermost)
    Tasks: 11 (limit: 4585)
   Memory: 247.1M
   CGroup: /system.slice/mattermost.service
           └─4116 /opt/mattermost/bin/mattermost
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.0674481,"caller":"mlog/sugar.go:19","msg":"Scheduling next survey for Sep 2,
Aug 12 12:15:06 chat mattermost[4116]: {"level":"error","ts":1565604906.1013212,"caller":"plugin/hclog_adapter.go:60","msg":"reading plugin stderr"
Aug 12 12:15:06 chat mattermost[4116]: {"level":"error","ts":1565604906.1966574,"caller":"mlog/log.go:172","msg":"RPC call OnConfigurationChange to
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.1981738,"caller":"jobs/workers.go:68","msg":"Starting workers"}
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.1982753,"caller":"app/server.go:413","msg":"Starting Server..."}
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.199372,"caller":"jobs/schedulers.go:72","msg":"Starting schedulers."}
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.202546,"caller":"app/server.go:479","msg":"Server is listening on [::]:8065"
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.225944,"caller":"app/web_hub.go:75","msg":"Starting 4 websocket hubs"}
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.2512763,"caller":"commands/server.go:105","msg":"Sending systemd READY notif
Aug 12 12:15:06 chat systemd[1]: Started Mattermost.

验证最重要的是运行。

curl http://localhost:8065

我们应该看到最棘手的服务器返回HTML。

第7步:完成最重要的Web配置

打开浏览器并在8065上导航到最重要的实例。
例如,192.168.10.10:8085

访问系统控制台:

然后根据配置设置文档配置服务器。

更多设置:

按照说明配置TLS

按照SMTP电子邮件设置教程配置电子邮件

在进行更改后,别忘了重启最重要的服务。

sudo systemctl restart mattermost

步骤8:配置nginx代理服务器

在生产设置中,使用代理服务器以实现更大的安全性和性能。

# Install nginx
$sudo apt -y install nginx

最重要的是,创建新的配置文件。

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

添加配置设置。

upstream backend {
   server 192.168.10.10:8065;
   keepalive 32;
}
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;
server {
   listen 80;
   server_name    chat.example.com;
   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 $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_buffers 256 16k;
       proxy_buffer_size 16k;
       client_body_timeout 60;
       send_timeout 300;
       lingering_timeout 5;
       proxy_connect_timeout 90;
       proxy_send_timeout 300;
       proxy_read_timeout 90s;
       proxy_pass http://backend;
   }
   location/{
       client_max_body_size 50M;
       proxy_set_header Connection "";
       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_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_cache mattermost_cache;
       proxy_cache_revalidate on;
       proxy_cache_min_uses 2;
       proxy_cache_use_stale timeout;
       proxy_cache_lock on;
       proxy_http_version 1.1;
       proxy_pass http://backend;
   }
}

重新启动nginx。

sudo rm /etc/nginx/sites-enabled/default
sudo systemctl restart nginx