在Ubuntu 20.04/18.04/Debian 10 Linux上安装Mattermost
欢迎来到当今关于如何在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