Cài đặt Mattermost trên Ubuntu 20, ứng dụng chat nội bộ cho doanh nghiệp

mattermost

Xin chào tất cả các bạn đang xem blog của mình. Hôm nay mình chia sẻ đến bạn một bài viêt mới về một công cụ chat online. Sở dĩ mình viết bài này vì hiện tại mình thấy rất nhiều các công ty, doanh nghiệp thường sử dụng Zalo, Skype, Facebook, Viber để làm môi trường trao đổi công việc. Vậy sao? bạn không tạo riêng cho mình một công cụ chat mới trên chính tên miền và Logo của mình. Đó chính là công cụ Mattermost mà mình muôn nhắc đến ngày hôm nay.

mattermost

I. Mattermost là gì

Mattermost, một công cụ chat mã nguồn mở đóng vai trò cung cấp dịch vụ trò chuyện trực tuyến tự lưu trữ nguồn mở với chia sẻ tệp, tìm kiếm và tích hợp. Nó được thiết kế phù hợp với các nhu cầu trao đổi nội bộ cho các tổ chức và công ty. Giải pháp này thường được ứng dụng như một sự thay thế cho Slack.

Mattermost hỗ trợ đa thiết bị. Bạn có thể sử dụng trực tiếp từ browser, App trên máy tính và cả di động.

II. Hướng dẫn cài đặt Mattermost

1. Yêu cầu hệ thống

Mattermost installation 2
  • Máy chủ Linux chạy (Ubuntu, Debian, CentOS)
  • 1x vCPU/core
  • 2 GB RAM
  • 6.5 GB storage

2. Các bước cài đặt

Bước 1: Cập nhật hệ thống

Cập nhật hệ thống lên phiên bản mới nhất

apt update
apt -y upgrade
reboot
    

Thiết lập Hostname

hostnamectl set-hostname chat.dotrungquan.info
exec bash
    

Bước 2: Cài đặt PostgreSQL làm máy chủ cơ sở dữ liệu

Mattermost hỗ trợ MySQL/MariaDB và PostgreSQL. Tuy nhiên mặc định file cấu hình được định sặn với PostgreSQL nên mình sẽ dùng PostgreSQL là máy chủ cơ sở dữ liệu.

apt -y install postgresql postgresql-contrib
    

Sau khi cài đặt xong PostgreSQL, bạn hãy đăng nhập và tạo thông tin Database và người dùng

sudo --login --user postgres

Để tạo bạn hãy sử dụng các lệnh sau. Và ở đây mình sẽ tạo như sau

  • Database: Mình đặt là mattermost
  • Username: MÌnh đặt là mmuser
  • Passwd: Mình sẽ đặt là ZrzmibokGq0A
psql
CREATE DATABASE mattermost;
CREATE USER mmuser WITH PASSWORD 'ZrzmibokGq0A';
GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;
q

Bước 3: Tạo nhóm và người dùng hệ thống

Bạn cần tạo tạo user và group hệ thống để chạy. Để tạo bạn thực hiện như sau

useradd --system --user-group mattermost
Bạn có thể xác nhận đó là người dùng hệ thống vì ID của nó nhỏ hơn 1000
root@chat:~# id mattermost
uid=998(mattermost) gid=998(mattermost) groups=998(mattermost)

Bước 4: Tải và cài đặt Mattermost

Bây giờ mình sẽ tải file cài đặt Mattermost từ trang chủ. Và bạn có thể xem các phiên bản mới tại đây:

Bạn hãy chạy các lệnh sau để tải về và giải nén file sau khi tải.

cd /root
wget https://releases.mattermost.com/5.37.0/mattermost-5.37.0-linux-amd64.tar.gz
tar xvf mattermost-*.tar.gz
mv mattermost /opt
    

Tiếp theo bạn hãy tạo một thư mục mới để lưu trữ dữ liệu như (hình ảnh, video…). Bạn có thể tạo bằng lệnh bên dưới và cấp quyền sử dụng.

mkdir /opt/mattermost/data
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost

Bước 5: Cấu hình  Mattermost Server

  • Sửa file cấu hình

Thiết lập trình điều khiển cơ sở dữ liệu Database tại file /opt/mattermost/config/config.json

vi /opt/mattermost/config/config.json

Thay các dòng sau bằng thông tin của bạn. Và file cấu hình cài đặt cơ sở dữ liệu PostgreSQL trong phần “SqlSettings”:.

Lưu ý bạn cần thay các dòng như sau bằng thông tin của bạn.

  • SiteURL: Nhập vào hostname của bạn
  • mat-khau-db: Nhập vào mật khẩu mà bạn tạo ở Bước 2
"SiteURL": "https://chat.dotrungquan.info",
"DriverName": "postgres",
"DataSource": "postgres://mmuser:mat-khau-db@localhost:5432/mattermost?sslmode=disable&connect_timeout=10",
Screenshot 2021 07 22 at 18.19.06

Sau khi đã thay đổi bạn hãy save lại thông tin.

  • Tạo file dịch vụ hệ thống của Mattermost

Tiếp theo, bạn sẽ cần tạo tệp dịch vụ systemd để quản lý dịch vụ Mattermost. Bạn có thể tạo nó bằng lệnh sau

vi /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

Lưu và đóng tệp, sau đó khởi động lại daemon systemd bằng lệnh sau:

systemctl daemon-reload

Tiếp theo, khởi động dịch vụ Mattermost và cho phép nó khởi động khi khởi động lại hệ thống bằng lệnh sau:

systemctl start mattermost
systemctl enable mattermost
systemctl status mattermost
root@chat:~# systemctl status mattermost
● mattermost.service – Mattermost
Loaded: loaded (/lib/systemd/system/mattermost.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 20210722 07:26:07 UTC; 17s ago
Main PID: 17995 (mattermost)
Tasks: 38 (limit: 19660)
Memory: 282.9M
CGroup: /system.slice/mattermost.service
├─17995 /opt/mattermost/bin/mattermost
├─18106 plugins/com.mattermost.plugin-channel-export/server/dist/plugin-linux-amd64
├─18112 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64
└─18118 plugins/com.mattermost.plugin-incident-management/server/dist/plugin-linux-amd64

Và ngay lúc này thì Mattermost đang chạy và lắng nghe trên cổng 8065. Và bạn hãy truy cập server-ip:8065 để đăng nhập.

Screenshot 2021 07 22 at 18.05.19

Truy cập vào System Console

Screenshot 2021 07 22 at 18.07.23

Bây giờ bạn có thể thiết lập máy chủ theo tài liệu sau nhé.

Screenshot 2021 07 22 at 18.31.23

Bước 5: Cấu hình Nginx Reverse Proxy

Tiêp theo bạn hãy cài đặt và cấu hình NGINX  Reverse proxy cho Mattermost. Để cài đặt bạn sử dụng lệnh sau

apt-get install nginx -y
image 15

Sau khi cài đặt xong bạn hãy tạo mới file cấu hình Mattermost và thêm vào nội dung như sau

vi /etc/nginx/conf.d/mattermost.conf

Thêm các dòng sau vào file. Và thay đổi 2 dòng sau bằng thông tin của bạn

  • server 192.168.0.69: Thay bằng IP của bạn
  • server_name chat.dotrungquan.info; : Thay bằng hostname của bạn
upstream backend {
server 192.168.0.69: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.dotrungquan.info;
 
location ~ /api/v[09]+/(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;
}
}

Khởi động lại cấu hình NGINX

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

Bước 6: Cài đặt SSL Let’s Encrypt cho Mattermost

Trước tiên, bạn sẽ cần cài đặt ứng dụng khách Certbot trong hệ thống của mình để quản lý Let’s Encrypt SSL. Bạn có thể cài đặt nó bằng lệnh sau:

apt-get install python3-certbot-nginx -y

Sau khi cài đặt Certbot, hãy chạy lệnh sau để cài đặt Let’s Encrypt SSL cho trang web của bạn.

certbot --nginx -d chat.dotrungquan.info
Screenshot 2021 07 22 at 18.42.21

Bây giờ bạn hãy truy cập và kiểm tra SSL nhé.

Screenshot 2021 07 22 at 18.43.56

(nguồn: dotrungquan.info)

 

Leave a Reply