Mattermost là má»™t ứng dụng nhắn tin mã nguồn mở và tá»± lưu trữ được sá» dụng để trò chuyện, chia sẻ tệp, tìm kiếm và tÃch hợp. Đây là má»™t giải pháp thay thế cho trò chuyện Slack, đưa tất cả thông tin liên lạc cá»§a nhóm bạn vÃo má»™t nÆ¡i. Nó được viết bằng React và Golang, và sá» dụng cÆ¡ sở dữ liệu PostgreSQL hoặc MySQL ở phÃa sau. Nó cung cấp má»™t bá»™ tÃnh năng phong phú bao gồm, Thông báo đẩy, Lịch sá» tìm kiếm không giá»›i hạn, Biểu tượng cảm xúc tùy chỉnh, Webhooks & lệnh, Active Directory, Há»— trợ triển khai cÆ¡ sở dữ liệu Ä‘a nút, Diá»…n Ä‘Ãn, Bảng thảo luáºn và nhiều hÆ¡n nữa.
Trong hướng dẫn nÃy, chúng tôi sẽ chỉ cho bạn cách cÃi đặt Mattermost vá»›i Nginx và Let's Encrypt SSL trên Ubuntu 20.04.
Sau khi tất cả các gói được cáºp nháºt, hãy cÃi đặt các phụ thuá»™c cần thiết khác bằng cách chạy lệnh sau:
Sau khi cÃi đặt tất cả các gói cần thiết, bạn có thể tiến hÃnh bước tiếp theo.
Sau khi cÃi đặt máy chá»§ MariaDB, hãy đăng nháºp vÃo MariaDB bằng lệnh sau:
Sau khi đăng nháºp, hãy tạo cÆ¡ sở dữ liệu và người dùng cho Mattermost bằng lệnh sau:
Tiếp theo, cấp tất cả các quyền cho Mattermost bằng lệnh sau:
Tiếp theo, xóa các quyền và thoát khỏi shell MariaDB bằng lệnh sau:
Sau khi cấu hình xong cÆ¡ sở dữ liệu MariaDB, bạn có thể tiến hÃnh bước tiếp theo.
Sau khi tải xuống, hãy giải nén tệp đã tải xuống bằng lệnh sau:
Tiếp theo, sao chép thư mục đã giải nén vÃo /opt:
Tiếp theo, tạo thư mục dữ liệu cho Mattermost:
Tiếp theo, bạn sẽ cần tạo một người dùng riêng để chạy Mattermost. Bạn có thể tạo nó bằng lệnh sau:
Tiếp theo, thay đổi quyền sở hữu cá»§a thư mục mattermost thÃnh mattermost và cấp quyền thÃch hợp bằng lệnh sau:
Tiếp theo, chỉnh sá»a tệp cấu hình mặc định cá»§a Mattermost và xác định cÃi đặt cÆ¡ sở dữ liệu và URL trang web cá»§a bạn.
Thay đổi các dòng sau theo nhu cầu của bạn:
Lưu và đóng tệp khi bạn hoÃn tất.
Thêm các dòng sau:
Lưu và đóng tệp, sau đó tải lại daemon systemd bằng lệnh sau:
Tiếp theo, khởi động dịch vụ Mattermost và cho phép dịch vụ nÃy khởi động khi khởi động lại hệ thống bằng lệnh sau:
Tiếp theo, xác minh trạng thái của dịch vụ Mattermost bằng lệnh sau:
Bạn sẽ nháºn được kết quả đầu ra sau:
Lúc nÃy, Mattermost Ä‘ang chạy và lắng nghe trên cổng 8065.
Sau khi đã cÃi đặt, tạo tệp cấu hình máy chá»§ ảo Nginx bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp, sau đó kÃch hoạt cấu hình máy chá»§ ảo bằng lệnh sau:
Tiếp theo, hãy kiểm tra Nginx để xem có lá»—i cấu hình nÃo không:
Bạn sẽ nháºn được kết quả sau:
Cuối cùng, hãy khởi động lại dịch vụ Nginx để áp dụng các thay đổi:
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.
Bạn sẽ được yêu cầu cung cấp địa chỉ email hợp lệ và chấp nháºn Ä‘iều khoản dịch vụ như hiển thị bên dưới:
Tiếp theo, chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không:
Nháºp 2 và nhấn Enter để cÃi đặt Let's Encrypt SSL trên miền cá»§a bạn. Sau khi cÃi đặt, bạn sẽ thấy đầu ra sau:
Cung cấp địa chỉ email, tên, máºt khẩu cá»§a bạn và nhấp vÃo nút Tạo tÃi khoản. Bạn sẽ thấy mÃn hình sau:
Nhấp vÃo nút Tạo má»™t nhóm. Bạn sẽ thấy mÃn hình sau:
Cung cấp tên Nhóm cá»§a bạn và nhấp vÃo nút Tiếp theo. Bạn sẽ thấy mÃn hình sau:
Cung cấp URL nhóm cá»§a bạn và nhấp vÃo nút HoÃn tất. Bạn sẽ thấy mÃn hình ChÃo mừng Mattermost:
Nhấp vÃo nút Bỏ qua Hướng dẫn. Bạn sẽ thấy bảng Ä‘iều khiển Mattermost trong mÃn hình sau:
Trong hướng dẫn nÃy, chúng tôi sẽ chỉ cho bạn cách cÃi đặt Mattermost vá»›i Nginx và Let's Encrypt SSL trên Ubuntu 20.04.
Điều kiện tiên quyết
- Một máy chủ chạy Ubuntu 20.04.
- Một tên miền hợp lệ được trỏ bằng IP máy chủ của bạn.
- Má»™t máºt khẩu gốc được cấu hình trên máy chá»§.
Bắt đầu
Trước tiên, bạn nên cáºp nháºt các gói hệ thống cá»§a mình lên phiên bản má»›i nhất. Bạn có thể cáºp nháºt chúng bằng cách chạy lệnh sau:
Mã:
apt-get update -y
Mã:
apt-get install curl wget vim git unzip gnupg2 -y
CÃi đặt và cấu hình MariaDB
Mattermost sá» dụng MySQL/MariaDB lÃm cÆ¡ sở dữ liệu phụ trợ. Do đó, máy chá»§ MariaDB phải được cÃi đặt trong máy chá»§ cá»§a bạn. Nếu chưa cÃi đặt, bạn có thể cÃi đặt bằng lệnh sau:
Mã:
apt-get install mariadb-server -y
Mã:
mysql
Mã:
MariaDB [(none)]> CREATE DATABASE mattermostdb;
MariaDB [(none)]> CREATE USER 'mattermost'@'%' IDENTIFIED BY 'password';
Mã:
MariaDB [(none)]> CẤP TẤT CẢ CÁC QUYỀN TRÊN mattermostdb.* CHO 'mattermost'@'%';
Mã:
MariaDB [(none)]> XÓA QUYỀN;
MariaDB [(none)]> THOÁT;
CÃi đặt và cấu hình Mattermost
Trước tiên, bạn sẽ cần tải xuống phiên bản Mattermost má»›i nhất từ ​​trang web chÃnh thức cá»§a ứng dụng. Bạn có thể tải xuống bằng lệnh sau:
Mã:
wget https://releases.mattermost.com/5.24.2/mattermost-5.24.2-linux-amd64.tar.gz
Mã:
tar -xvzf mattermost-5.24.2-linux-amd64.tar.gz
Mã:
cp -r mattermost /opt
Mã:
mkdir /opt/mattermost/data
Mã:
useradd --system --user-group mattermost
Mã:
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost
Mã:
nano /opt/mattermost/config/config.json
Mã:
"SiteURL": "https://mattermost.linuxbuz.com", "DriverName": "mysql", "DataSource": "mattermost:password@tcp(localhost:3306)/mattermostdb?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",
Tạo tệp dịch vụ Systemd cho 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:
Mã:
nano /lib/systemd/system/mattermost.service
Mã:
[Unit]Description=MattermostAfter=network.targetAfter=mysql.serviceRequires=mysql.service[Service]Type=notifyUser=mattermostGroup=mattermostExecStart=/opt/mattermost/bin/mattermostTimeoutStartSec=3600Restart=alwaysRestartSec=10WorkingDirectory=/opt/mattermostLimitNOFILE=49152[Install]WantedBy=mariadb.service
Mã:
systemctl daemon-reload
Mã:
systemctl start mattermost
systemctl enable mattermost
Mã:
systemctl status mattermost
Mã:
? mattermost.service - Mattermost Đã tải: đã tải (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled) Đang hoạt động: Ä‘ang hoạt động (Ä‘ang chạy) kể từ Sat 2020-08-01 09:12:52 UTC; 17 giây trước PID chÃnh: 4106 (mattermost) Nhiệm vụ: 20 (giá»›i hạn: 2353) Bá»™ nhá»›: 85,9M CGroup: /system.slice/mattermost.service ??4106 /opt/mattermost/bin/mattermost ??4198 plugins/com.mattermost.nps/server/dist/plugin-linux-amd6401 tháng 8 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.131499,"caller":"mlog/sugar.go:19","msg":"Đã gá»i thông báo ne>01 tháng 8 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.1841655,"caller":"jobs/workers.go:73","msg":"Đang khởi động công nhân"}01 tháng 8 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.1842792,"caller":"bleveengine/bleve.go:267","msg":"UpdateConf Ble>01/08 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.1930475,"caller":"jobs/schedulers.go:74","msg":"Đang bắt đầu lịch trình>01/08 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.20063,"caller":"app/web_hub.go:83","msg":"Đang bắt đầu websocket hubs>01/08 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2099638,"caller":"app/license.go:37","msg":"Khóa cấp phép từ http>01/08 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2205582,"caller":"app/server.go:525","msg":"Đang khởi động máy chá»§..."}01/08 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2208374,"caller":"app/server.go:594","msg":"Máy chá»§ Ä‘ang lắng nghe o>01/08 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2211802,"caller":"commands/server.go:106","msg":"Đang gá»i systemd >01/08 09:12:52 ubuntu2004 systemd[1]: Đã khởi động Mattermost.
Cấu hình Nginx lÃm Proxy ngược
Tiếp theo, bạn sẽ cần cấu hình Nginxx lÃm proxy ngược cho Mattermost. Trước tiên, hãy cÃi đặt gói Nginx bằng lệnh sau:
Mã:
apt-get install nginx -y
Mã:
nano /etc/nginx/sites-available/mattermost.conf
Mã:
upstream mattermost { server localhost: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 mattermost.linuxbuz.com; location ~ /api/v[0-9]+/(users/)?websocket$ { proxy_set_header Nâng cấp $http_upgrade; proxy_set_header Kết nối "nâng cấp"; client_max_body_size 50M; proxy_set_header Máy chủ $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 90 giây; proxy_pass http://mattermost; } vị trà / { client_max_body_size 50M; proxy_set_header Kết nối ""; proxy_set_header Máy chủ $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 600 giây; 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://mattermost; }}
Mã:
ln -s /etc/nginx/sites-available/mattermost.conf /etc/nginx/sites-enabled/mattermost.conf
Mã:
nginx -t
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: kiểm tra tệp cấu hình /etc/nginx/nginx.conf thÃnh công
Mã:
systemctl restart nginx
Bảo máºt Mattermost bằng Let's Encrypt SSL
Đầu tiên, bạn sẽ cần cÃi đặt ứng dụng khách Certbot vÃo hệ thống cá»§a mình để quản lý Let's Encrypt SSL. Bạn có thể cÃi đặt bằng lệnh sau:
Mã:
apt-get install python3-certbot-nginx -y
Mã:
certbot --nginx -d mattermost.linuxbuz.com
Mã:
Lưu nháºt ký gỡ lá»—i vÃo /var/log/letsencrypt/letsencrypt.logCác plugin đã chọn: Authenticator nginx, Installer nginxNháºp địa chỉ email (dùng để gia hạn khẩn cấp và thông báo bảo máºt) (Nháºp 'c' đểhá»§y): [emailprotected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vui lòng đọc Điều khoản dịch vụ tạihttps://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Bạn phảiđồng ý để đăng ký vá»›i máy chá»§ ACME tạihttps://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(A)gree/(C)ancel: A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bạn có muốn chia sẻ địa chỉ email cá»§a mình vá»›i Electronic Frontier Foundation, đối tác sáng láºp cá»§a dá»± án Let's Encrypt và tổ chức phi lợi nhuáºnphát triển Certbot không? Chúng tôi muốn gá»i cho bạn email về công việc cá»§a chúng tôimã hóa web, tin tức EFF, các chiến dịch và các cách há»— trợ tá»± do kỹ thuáºt số.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(C)ó/(K)o: CNháºn chứng chỉ má»›iThá»±c hiện các thá» thách sau:Thá» thách http-01 cho mattermost.linuxbuz.comĐang chờ xác minh...Dọn dẹp các thá» tháchTriển khai chứng chỉ cho VirtualHost /etc/nginx/sites-enabled/mattermost.conf
Mã:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1: Không chuyển hướng - Không thá»±c hiện thêm bất kỳ thay đổi nÃo đối vá»›i cấu hình máy chá»§ web.2: Chuyển hướng - Chuyển hướng tất cả các yêu cầu đến quyền truy cáºp HTTPS an toÃn. Chọn tùy chọn nÃy chocác trang web má»›i hoặc nếu bạn tin chắc rằng trang web cá»§a mình hoạt động trên HTTPS. Bạn có thể hoÃn tác thay đổi nÃybằng cách chỉnh sá»a cấu hình máy chá»§ web cá»§a bạn.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Chọn số thÃch hợp [1-2] sau đó [enter] (nhấn 'c' để há»§y): 2
Mã:
Đang chuyển hướng tất cả lưu lượng truy cáºp trên cổng 80 sang ssl trong /etc/nginx/sites-enabled/mattermost.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Xin chúc mừng! Bạn đã báºt thÃnh công https://mattermost.linuxbuz.comBạn nên kiểm tra cấu hình cá»§a mình tại:https://www.ssllabs.com/ssltest/analyze.html?d=mattermost.linuxbuz.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LƯU Ý QUAN TRỌNG: - Xin chúc mừng! Chứng chỉ và chuá»—i cá»§a bạn đã được lưu tại: /etc/letsencrypt/live/mattermost.linuxbuz.com/fullchain.pem Tệp khóa cá»§a bạn đã được lưu tại: /etc/letsencrypt/live/mattermost.linuxbuz.com/privkey.pem Chứng chỉ cá»§a bạn sẽ hết hạn vÃo ngÃy 30-10-2020. Để có phiên bản má»›i hoặc đã chỉnh sá»a cá»§a chứng chỉ nÃy trong tương lai, chỉ cần chạy lại certbot vá»›i tùy chọn "certonly". Để gia hạn không tương tác *tất cả* chứng chỉ cá»§a bạn, hãy chạy "certbot renew" - Thông tin đăng nháºp tÃi khoản cá»§a bạn đã được lưu trong thư mục cấu hình Certbot tại /etc/letsencrypt. Bây giờ bạn nên sao lưu an toÃn thư mục nÃy. Thư mục cấu hình nÃy cÅ©ng sẽ chứa các chứng chỉ và khóa riêng do Certbot thu tháºp, do đó, việc sao lưu thường xuyên thư mục nÃy là lý tưởng. - Nếu bạn thÃch Certbot, vui lòng cân nhắc há»— trợ công việc cá»§a chúng tôi bằng cách: Quyên góp cho ISRG / Let's Encrypt: https://letsencrypt.org/donate Quyên góp cho EFF: https://eff.org/donate-le - Chúng tôi không thể đăng ký cho bạn vÃo danh sách gá»i thư EFF vì địa chỉ email cá»§a bạn có vẻ không hợp lệ. Bạn có thể thá» lại sau bằng cách truy cáºp https://act.eff.org.
Giao diện web Access Mattermost
Bây giờ, hãy mở trình duyệt web cá»§a bạn và nháºp URL https://mattermost.linuxbuz.com. Bạn sẽ được chuyển hướng đến mÃn hình đăng ký Mattermost:Cung cấp địa chỉ email, tên, máºt khẩu cá»§a bạn và nhấp vÃo nút Tạo tÃi khoản. Bạn sẽ thấy mÃn hình sau:
Nhấp vÃo nút Tạo má»™t nhóm. Bạn sẽ thấy mÃn hình sau:
Cung cấp tên Nhóm cá»§a bạn và nhấp vÃo nút Tiếp theo. Bạn sẽ thấy mÃn hình sau:
Cung cấp URL nhóm cá»§a bạn và nhấp vÃo nút HoÃn tất. Bạn sẽ thấy mÃn hình ChÃo mừng Mattermost:
Nhấp vÃo nút Bỏ qua Hướng dẫn. Bạn sẽ thấy bảng Ä‘iều khiển Mattermost trong mÃn hình sau: