NỘI DUNG
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.
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
- 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",
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 2021-07-22 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.
Truy cập vào System Console
Bây giờ bạn có thể thiết lập máy chủ theo tài liệu sau nhé.
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
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[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; } }
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
Bây giờ bạn hãy truy cập và kiểm tra SSL nhé.
III. Tổng kết
Qua bài viết này Quân đã hướng dẫn các bạn cách cài đặt và cấu hình Mattermost trên Ubuntu 20 hoàn tất. Nếu có bất kỳ ý kiến đóng góp nào các bạn có thể để lại bình luận ở bên dưới nhé.
Ngoài trong giai đoạn Work From Home (WFH) tất cả mọi người đều làm việc tại nhà. Vì vậy mình có hướng dẫn một bài cài đặt Jitsi Meet. Nó là một ứng dụng Video call dạng hội họp. Bạn có thể tham khảo để thiết lập nhé.