Cách cài đặt Mattermost với PostgreSQL và Nginx trên Ubuntu 16.04

theanh

Administrator
Nhân viên
Mattermost là một hệ thống nhắn tin nguồn mở được viết bằng ngôn ngữ lập trình Golang và React. Đây là một giải pháp thay thế cho slack, chúng ta có thể xây dựng dịch vụ nhắn tin của riêng mình như slack hoặc hipchat bằng nó. Mattermost tập hợp thông tin liên lạc của nhóm bạn vào một nơi duy nhất và có thể truy cập ở mọi nơi. Bạn có thể truy cập từ máy tính để bàn, thiết bị Android và iPhone của mình.

Trong hướng dẫn này, tôi sẽ hướng dẫn bạn tạo máy chủ Mattermost của riêng mình sử dụng PostgreSQL làm hệ thống cơ sở dữ liệu và Nginx làm proxy ngược cho Mattermost. Tôi sẽ sử dụng ubuntu 16.04 làm hệ điều hành.



Điều kiện tiên quyết
  • Ubuntu 16.04 - 64bit
  • Quyền root

Bước 1 - Cài đặt và cấu hình cơ sở dữ liệu PostgreSQL​

Mattermost hỗ trợ cơ sở dữ liệu MySQL và PostgreSQL. Chúng tôi sẽ sử dụng PostgreSQL làm cơ sở dữ liệu chính cho hướng dẫn này. Kết nối với máy chủ của bạn và cập nhật kho lưu trữ.

Kết nối với máy chủ của bạn bằng SSH hoặc đăng nhập vào thiết bị đầu cuối và cập nhật kho lưu trữ Ubuntu.
Mã:
ssh [emailprotected]
sudo apt-get update
Là người dùng root, hãy cài đặt PostgreSQL bằng lệnh apt này.
Mã:
sudo apt-get install postgresql postgresql-contrib
Khi quá trình cài đặt hoàn tất, hãy đăng nhập vào người dùng postgres và nhập lệnh 'psql' để đăng nhập vào postgresql shell.
Mã:
su - postgres
psql
Thay đổi mật khẩu người dùng postgres bằng lệnh bên dưới:
Mã:
\password postgres
Nhập mật khẩu mới:
Tiếp theo, chúng ta phải cấu hình cơ sở dữ liệu và người dùng mới cho cài đặt Mattermost. Tôi sẽ tạo một cơ sở dữ liệu mới có tên là 'mattermostdb' và người dùng 'matteruser' với mật khẩu 'matterpassword'. Vui lòng chọn mật khẩu an toàn cho cài đặt của bạn.

Tạo cơ sở dữ liệu và người dùng mới bằng truy vấn PostgreSQL bên dưới:
Mã:
CREATE DATABASE mattermostdb;
CREATE USER matteruser WITH PASSWORD 'matterpassword';
Cấp quyền 'matteruser' cho cơ sở dữ liệu 'mattermostdb' và thoát.
Mã:
CẤP TẤT CẢ QUYỀN TRÊN CƠ SỞ DỮ LIỆU mattermostdb CHO matteruser;
\q



Bước 2 - Cài đặt và cấu hình Mattermost​

Chúng tôi sẽ cài đặt và cấu hình Mattermost dưới dạng người dùng Linux thông thường, không phải người dùng root. Chúng ta sẽ chạy Mattermost với tư cách là người dùng 'matter', vì vậy chúng ta cần tạo một người dùng Linux mới có tên 'matter' trên máy chủ.

Tạo người dùng và mật khẩu 'matter' mới.
Mã:
useradd -m -s /bin/bash matter
passwd matter
Người dùng 'matter' đã được tạo, bây giờ hãy đăng nhập vào người dùng đó và tải xuống phiên bản Mattermost mới nhất bằng wget.
Mã:
su - matter
wget https://releases.mattermost.com/3.4.0/mattermost-3.4.0-linux-amd64.tar.gz
Giải nén tệp Mattermost và bạn sẽ thấy thư mục mới 'mattermost', hãy nhập thư mục đó bằng lệnh cd.
Mã:
tar -xzvf mattermost-3.4.0-linux-amd64.tar.gz
cd mattermost/
Tiếp theo, tạo một thư mục 'data' mới để lưu trữ các tệp người dùng, sau đó chỉnh sửa tệp cấu hình mattermost 'config/config.json' bằng vim.
Mã:
mkdir data/
vim config/config.json
Chúng ta sẽ chạy mattermost đằng sau proxy ngược Nginx, vì vậy tốt hơn là cấu hình Mattermost để lắng nghe trên địa chỉ IP cục bộ. Trong khối 'ServiceSettings', thêm địa chỉ IP localhost vào cấu hình ở dòng 4.
Mã:
"ListenAddress": "127.0.0.1:8065",
Bây giờ hãy chuyển đến 'SqlSettings' ở dòng 48. Thay đổi cấu hình 'DriverName' và 'DataSource' để sử dụng cơ sở dữ liệu PostgreSQL với cấu hình bên dưới:
Mã:
"DriverName": "postgres",
"DataSource": "postgres://matteruser:[emailprotected]:5432/mattermostdb?sslmode=disable&connect_timeout=10",
Lưu ý:


matteruser = postgresql user.
matterpassword = mật khẩu.
mattermostdb = cơ sở dữ liệu.

Lưu và thoát.

Khi thực hiện xong, hãy chuyển đến thư mục bin và chạy mattermost.
Mã:
cd bin/
./platform
Bây giờ bạn sẽ thấy mattermost đang chạy trên IP localhost với cổng 8065.

Nhấn Ctrl + c để thoát.




Bước 3 - Cấu hình Dịch vụ Mattermost Systemd​

Chuyển đến thư mục hệ thống systemd và tạo tệp dịch vụ mattermost mới.
Mã:
cd /etc/systemd/system/
vim mattermost.service
Dán cấu hình bên dưới:
Mã:
[Unit]
Description=Mattermost là một Slack-alternative mã nguồn mở, tự lưu trữ
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
Lưu và thoát.

Tải lại daemon systemd và khởi động dịch vụ Mattermost mà chúng ta đã tạo ở trên.
Mã:
systemctl daemon-reload
systemctl start mattermost
Đảm bảo không có lỗi. Kiểm tra xem dịch vụ Mattermost có đang chạy không.
Mã:
netstat -plntu
systemctl status mattermost



Bước 4 - Cài đặt và cấu hình Nginx​

Trong bước này, chúng ta sẽ cài đặt Nginx và cấu hình Nginx làm proxy ngược cho Mattermost. Chúng ta sẽ ánh xạ cổng mattermost 8056 sang cổng HTTP và HTTPS.

Cài đặt Nginx từ kho lưu trữ Ubuntu bằng lệnh apt này.
Mã:
sudo apt-get install nginx
Bây giờ hãy đến thư mục cấu hình Nginx và tạo thư mục con SSL.
Mã:
cd /etc/nginx/
mkdir ssl/; cd ssl/
Tạo tệp chứng chỉ SSL tự ký mới bằng OpenSSL và thay đổi quyền của khóa riêng.
Mã:
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/mattermost.crt -keyout /etc/nginx/ssl/mattermost.key
chmod 400 mattermost.key
Tạo tệp máy chủ ảo mới cho Mattermost trong thư mục 'sites-available'.
Mã:
cd /etc/nginx/sites-available/
vim mattermost
Dán cấu hình máy chủ ảo bên dưới:
Mã:
server {
 listen 80;
 server_name mattermost.mydomain.com;
 return 301 https://$server_name$request_uri;
}
 
máy chủ {
 lắng nghe 443 ssl;
 tên máy chủ mattermost.mydomain.com;
 
 ssl bật;
 ssl_certificate /etc/nginx/ssl/mattermost.crt;
 ssl_certificate_key /etc/nginx/ssl/mattermost.key;
 ssl_session_timeout 5 phút;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
 ssl_prefer_server_ciphers bật;
 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;
 }
}
Thay đổi tên miền tên miền của riêng bạn, lưu và thoát.

Kích hoạt máy chủ ảo bằng cách tạo liên kết tượng trưng đến tệp mattermost trong thư mục 'sites-enabled'.
Mã:
ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/
Kiểm tra cấu hình Nginx và đảm bảo không có lỗi, sau đó khởi động lại nginx.
Mã:
nginx -t
systemctl restart nginx

Bước 5 - Kiểm tra​

Mở trình duyệt web của bạn và truy cập tên miền mattermost, trong trường hợp của tôi: mattermost.mydomain.com.

Bạn sẽ được tự động chuyển hướng đến kết nối HTTPS.

Trước tiên, hãy tạo một tài khoản mới, nhấp vào 'Tạo tài khoản'.



Sau đó, bạn có thể thấy liên kết để tạo tài khoản mới nhóm hoặc để truy cập bảng điều khiển quản trị/hệ thống.



Nhấp vào 'Đi tới Bảng điều khiển hệ thống' và bạn sẽ thấy bảng điều khiển bảng điều khiển hệ thống bên dưới:



Nhấp vào 'Tạo nhóm mới', nhập tên nhóm của bạn và nhấp vào 'Tiếp theo'. Sau đó cấu hình URL nhóm và nhấp vào nút 'Hoàn tất'.



Cuối cùng, bạn sẽ thấy Bảng điều khiển nhóm.



Trò chuyện nhóm Mattermost.



Mattermost với máy chủ web PostgreSQL và Nginx trên Ubuntu 16.04 đã được cài đặt thành công.


Tham khảo​

 
Back
Bên trên