Cách thiết lập Mattermost trên Ubuntu 20.04
Mattermost là một nền tảng cộng tác và nhắn tin open-souce được tạo ra với tính bảo mật và khả năng cấu hình cung cấp chức năng tương đương với Discord hoặc Slack . Nó cung cấp tính năng nhắn tin group , phân stream và một-một, lịch sử tìm kiếm không giới hạn và khả năng chia sẻ file , ủy quyền hai yếu tố và thông báo. Mattermost cũng cung cấp webhook và tích hợp bot để tùy chỉnh thêm. Nó có thể truy cập từ mọi loại thiết bị hiện đại do giao diện web đáp ứng và các ứng dụng di động chuyên dụng.Trong hướng dẫn này, bạn sẽ cài đặt Mattermost Team Edition trên server Ubuntu 20.04 của bạn . Trước tiên, bạn sẽ cài đặt nó và hiển thị nó tại domain của bạn, được bảo mật bằng certificate Let's Encrypt TLS miễn phí. Sau đó, bạn sẽ bật thông báo qua email, tùy chỉnh thương hiệu và tạo bảng nhắn tin của bạn (được gọi là group trong Mattermost).
Yêu cầu
- Server chạy Ubuntu 20.04 có RAM ít nhất 2GB, quyền truy cập root và account sudo, không phải root. Bạn có thể cài đặt điều này theo Hướng dẫn Cài đặt Server Ban đầu này .
- MariaDB được cài đặt trên server của bạn. Để xem cách thực hiện việc này, hãy truy cập Cách cài đặt MariaDB trên Ubuntu 20.04 . Bạn có thể làm theo version ngắn được nêu ở đầu hướng dẫn.
- Postfix được cài đặt ở chế độ chỉ gửi trên server của bạn. Hãy truy cập hướng dẫn Cách cài đặt và cấu hình Postfix làm Server SMTP Chỉ gửi trên Ubuntu 20.04 để cài đặt điều này. Bạn sẽ sử dụng nó để cho phép gửi thông báo qua email từ Mattermost.
- Nginx được cài đặt trên server của bạn. Để có hướng dẫn về cách thực hiện việc này, hãy hoàn thành các Bước từ 1 đến 4 của Cách cài đặt Nginx trên Ubuntu 20.04 .
- Tên domain đã đăng ký đầy đủ để lưu trữ Mattermost, được trỏ đến server của bạn. Hướng dẫn này sẽ sử dụng quan
mattermost. your_domain
trong suốt. Bạn có thể mua domain trên Namecheap , nhận một domain miễn phí trên Freenom hoặc sử dụng công ty đăng ký domain mà bạn chọn. Đối với DigitalOcean, bạn có thể làm theo phần giới thiệu này về DigitalOcean DNS để biết chi tiết về cách thêm chúng.
Lưu ý : Để server SMTP Postfix của bạn hoạt động chính xác, các bản ghi PTR của server phải trùng với your_domain
. Bạn có thể xác minh tên server của server bằng lệnh hostname
tại dấu nhắc lệnh. Đầu ra phải trùng với tên bạn đã đặt cho server của bạn khi bạn tạo nó.
Bước 1 - Cài đặt Mattermost
Trong phần này, bạn sẽ cài đặt Mattermost trên server của bạn . Điều này đòi hỏi phải download version mới nhất, cấu hình nó để sử dụng database MariaDB và tạo một dịch vụ systemd
sẽ giữ cho Mattermost luôn chạy ở chế độ nền.
Đang download Mattermost
Bạn sẽ lưu trữ tất cả dữ liệu liên quan đến cài đặt Mattermost trong một folder có tên ~/mattermost
. Tạo nó bằng cách chạy lệnh sau:
- mkdir ~/mattermost
Điều hướng đến nó:
- cd ~/mattermost
Bạn cần truy cập trang download Mattermost trên trang web chính thức và sao chép liên kết cho bản phát hành mới nhất. Tại thời điểm viết bài, version mới nhất là 5.24.2
. Download nó bằng cách sử dụng wget
với lệnh sau:
- wget https://releases.mattermost.com/5.24.2/mattermost-5.24.2-linux-amd64.tar.gz
Sau đó, extract repository bằng lệnh:
- tar -xvzf mattermost*.gz
Lệnh này sẽ extract tất cả các file lưu trữ trong folder có tên bắt đầu bằng quan mattermost
.
Bạn sẽ nhận được một folder có tên chính xác như file root mà bạn đã download , chứa các file binary Mattermost. Sao chép nó vào /opt
để bạn có thể truy cập nó trên toàn hệ thống bằng lệnh:
- sudo cp -r mattermost /opt
Sau đó, tạo một folder cho Mattermost, nơi nó sẽ lưu trữ dữ liệu user :
- sudo mkdir /opt/mattermost/data
Lưu ý: Mattermost sẽ lưu trữ các file và hình ảnh mà bạn và group của bạn sẽ chia sẻ trong folder này, vì vậy hãy đảm bảo bạn có nhiều dung lượng trống trên ổ đĩa nơi chứa nó.
Tiếp theo, tạo user và group cho Mattermost:
- sudo useradd --system --user-group mattermost
Sau đó, làm cho user mới được tạo và group của họ sở hữu folder dữ liệu:
- sudo chown -R mattermost:mattermost /opt/mattermost
Điều này được thực hiện để trong trường hợp vi phạm, kẻ tấn công sẽ bị giới hạn trong folder Mattermost và sẽ không thể dễ dàng truy cập vào phần còn lại của hệ thống.
Cuối cùng, làm cho folder /opt/mattermost
thể ghi theo group :
- sudo chmod -R g+w /opt/mattermost
Bây giờ các file binary Mattermost đã có sẵn với các quyền được bảo mật, hãy cài đặt database cho nó.
Cài đặt database
Bắt đầu bằng lệnh dấu nhắc MariaDB bằng lệnh:
- sudo mysql
Tạo một user database có tên là mmuser
bằng cách chạy lệnh sau, thay thế your_mmuser_password
bằng password bạn chọn:
- CREATE USER 'mmuser'@'%' IDENTIFIED BY 'your_mmuser_password';
Sau đó, tạo database cho Mattermost:
- CREATE DATABASE mattermost;
Để cho mmuser
truy cập mattermost
database , cấp nó truy cập quyền bằng lệnh:
- GRANT ALL PRIVILEGES ON mattermost.* TO 'mmuser'@'%';
Sau đó, reload bảng tài trợ để áp dụng ngay các thay đổi:
- FLUSH PRIVILEGES;
Khi bạn hoàn tất, hãy thoát khỏi dấu nhắc :
- exit
Với database và user đi kèm được tạo, bây giờ bạn sẽ chỉnh sửa file cấu hình Mattermost chính và đặt chuỗi kết nối database chính xác.
Mở nó để chỉnh sửa:
- sudo nano /opt/mattermost/config/config.json
Tìm các dòng trông giống như sau:
. . . "DriverName": "..." "DataSource": "..." . . .
Sửa đổi chúng thành như được hiển thị ở đây, thay thế your_mmuser_password
bằng password bạn đã đặt cho account database mmuser
:
... "DriverName": "mysql" "DataSource": "mmuser:your_mmuser_password@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s" ...
Lưu file khi bạn hoàn tất.
Đến đây bạn đã cấu hình Mattermost để sử dụng database mới được tạo, nơi nó sẽ lưu trữ user , group và tin nhắn. Đến đây bạn đã sẵn sàng để chuyển sang tạo dịch vụ systemd
cho nó.
Tạo một dịch vụ systemd
Chạy Mattermost như một dịch vụ sử dụng systemd
đảm bảo nó sẽ luôn chạy ở chế độ nền.
Bạn sẽ lưu trữ cấu hình dịch vụ trong một file có tên là mattermost.service
, trong folder /lib/systemd/system
, nơi systemd
lưu trữ các dịch vụ của nó. Tạo nó bằng editor của bạn:
- sudo nano /lib/systemd/system/mattermost.service
Thêm các dòng sau:
[Unit] Description=Mattermost After=network.target After=mysql.service Requires=mysql.service [Service] Type=notify User=mattermost Group=mattermost ExecStart=/opt/mattermost/bin/mattermost TimeoutStartSec=3600 Restart=always RestartSec=10 WorkingDirectory=/opt/mattermost LimitNOFILE=49152 [Install] WantedBy=mysql.service
Ở đây, trước tiên bạn chỉ định mô tả của dịch vụ. Sau đó, bạn nói rằng dịch vụ mysql
phải được khởi động trước dịch vụ Mattermost vì dịch vụ Mattermost cần MariaDB chạy để hoạt động. Sau phần [Unit]
, bạn xác định loại dịch vụ. notify
nghĩa là quá trình sẽ thông báo cho systemd
rằng nó đã được tải. Bạn cung cấp lệnh sẽ được thực thi và đặt policy khởi động lại thành always
. Bạn cũng xác định folder làm việc cho quá trình và user và group nào mà nó sẽ chạy.
Trong phần [Install]
, bạn chỉ định dịch vụ database làm giá trị cho tham số WantedBy
đảm bảo rằng Mattermost khởi động lại cùng với database . Việc bỏ qua cài đặt này có thể gây ra sự cố khi database được cập nhật tự động, vì Mattermost có thể ngừng hoạt động nếu không được khởi động lại.
Lưu file , sau đó reload tất cả các dịch vụ bằng cách chạy lệnh sau:
- sudo systemctl daemon-reload
Kiểm tra xem nó đã được tải đúng chưa:
- sudo systemctl status mattermost
Bạn sẽ thấy kết quả sau:
Output● mattermost.service - Mattermost Loaded: loaded (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled) Active: inactive (dead)
Nếu systemd
báo lỗi, hãy kiểm tra kỹ tên file của file dịch vụ, vị trí của file và tính hợp lệ của nội dung.
Sau đó, kích hoạt dịch vụ Mattermost bằng lệnh:
- sudo systemctl enable mattermost
Trong bước này, bạn đã download Mattermost, cấu hình nó để sử dụng database MariaDB và tạo một dịch vụ systemd
cho nó. Trong bước tiếp theo, bạn sẽ hiển thị nó tại domain của bạn .
Bước 2 - Thể hiện vấn đề quan trọng nhất trong domain của bạn
Trong phần này, bạn sẽ cấu hình Nginx làm server Reverse Proxy cho Mattermost.
Trước khi cấu hình Nginx, bạn cần chỉ định domain của bạn trong file cấu hình Mattermost chính. Mở nó để chỉnh sửa:
- sudo nano /opt/mattermost/config/config.json
Tìm dòng trông giống như sau:
. . . "SiteURL": "" . . .
Chèn domain của bạn trong dấu ngoặc kép:
... "SiteURL": "http://mattermost.your_domain" ...
Lưu và đóng file .
Như bạn đã học ở bước yêu cầu Nginx, các file cấu hình trang web của nó được lưu trữ trong /etc/nginx/sites-available
và sau đó phải được softlink với /etc/nginx/sites-enabled
để hoạt động.
Bạn sẽ lưu trữ cấu hình để hiển thị Mattermost tại domain của bạn trong một file có tên là mattermost.conf
, trong /etc/nginx/sites-available
. Tạo nó bằng editor :
- sudo nano /etc/nginx/sites-available/mattermost.conf
Thêm các dòng sau:
upstream backend { 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.your_domain; 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; } }
Thay thế mattermost. your_domain
với domain mong muốn của bạn, sau đó lưu file .
Trong file này, bạn xác định rằng Nginx sẽ lắng nghe cổng HTTP 80
. Sau đó, bạn chỉ định server_name
cho Nginx biết domain nào chấp nhận yêu cầu và áp dụng cấu hình cụ thể này. Hai khối tiếp theo cấu hình thêm các kết nối proxy để Mattermost hoạt động chính xác.
Để làm cho cấu hình trang này hoạt động, bạn cần tạo một softlink cho nó trong folder /etc/nginx/sites-enabled
bằng lệnh:
- sudo ln -s /etc/nginx/sites-available/mattermost.conf /etc/nginx/sites-enabled/mattermost.conf
Để kiểm tra tính hợp lệ của cấu hình, hãy chạy lệnh sau:
- sudo nginx -t
Bạn sẽ thấy kết quả sau:
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Để cấu hình có hiệu lực, bạn cần khởi động lại Nginx:
- sudo systemctl restart nginx
Sau đó, khởi động dịch vụ Mattermost bằng lệnh:
- sudo systemctl start mattermost
Khi lệnh này kết thúc, hãy thử chuyển đến domain của bạn trong trình duyệt. Bạn sẽ thấy một trang yêu cầu bạn đăng ký:
Như vậy, bạn đã có sẵn bản cài đặt Mattermost và có thể truy cập tại domain của bạn . Trong bước tiếp theo, bạn sẽ bảo mật nó bằng cách áp dụng certificate Let's Encrypt TLS miễn phí.
Bước 3 - Bảo mật domain của bạn
Trong phần này, bạn sẽ bảo mật domain của bạn bằng certificate Let's Encrypt TLS mà bạn sẽ cấp bằng Certbot.
Bạn nên đã cài đặt Certbot như một phần của yêu cầu , vì vậy bạn chỉ cần cài đặt plugin Nginx của nó bằng lệnh:
- sudo apt install python3-certbot-nginx
Cũng là một phần của yêu cầu , bạn đã bật ufw
(Tường lửa không phức tạp) và cấu hình nó để cho phép truy cập HTTP không được mã hóa. Để có thể truy cập trang web được bảo mật, bạn cần phải cấu hình nó để chấp nhận truy cập được mã hóa bằng cách chạy lệnh sau:
- sudo ufw allow https
Đầu ra sẽ là:
OutputRule added Rule added (v6)
Tương tự với Nginx, bạn cần reload nó để cấu hình có hiệu lực:
- sudo ufw reload
Đầu ra sẽ hiển thị:
OutputFirewall reloaded
Để certificate request cho domain của bạn, hãy chạy lệnh sau:
- sudo certbot --nginx -d mattermost.your_domain
Trong lệnh này, bạn chạy certbot
để certificate request cho domain của bạn — bạn chuyển domain với tham số -d
. Cờ --nginx
cho biết nó tự động thay đổi cấu hình trang Nginx để hỗ trợ HTTPS. Hãy nhớ thay thế mattermost. your_domain
với domain của bạn.
Nếu đây là lần đầu tiên bạn chạy Certbot, bạn cần cung cấp địa chỉ email cho các thông báo khẩn cấp và chấp nhận Điều khoản dịch vụ của EFF. Sau đó, Certbot sẽ certificate request cho domain của bạn từ Let's Encrypt. Sau đó, nó sẽ hỏi bạn xem bạn có muốn chuyển hướng tất cả truy cập HTTP sang HTTPS hay không:
OutputPlease choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
Bạn nên chọn tùy chọn thứ hai để tối đa hóa bảo mật. Sau khi bạn nhập lựa chọn của bạn , hãy nhấn ENTER
.
Đầu ra của bạn sẽ tương tự như sau:
OutputIMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/mattermost.your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/mattermost.your_domain/privkey.pem Your cert will expire on 2020-09-28. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Điều này nghĩa là Certbot đã tạo thành công certificate TLS và áp dụng chúng vào cấu hình Nginx cho domain của bạn.
Vì domain của bạn hiện có thể được truy cập bằng HTTPS, bạn cần sửa URL của domain của bạn trong file cấu hình Mattermost chính. Mở nó để chỉnh sửa:
- sudo nano /opt/mattermost/config/config.json
, hãy tìm dòng trông giống như sau:
. . . "SiteURL": "http://mattermost.your_domain" . . .
Thay đổi http
thành https
:
. . . "SiteURL": "https://mattermost.your_domain" . . .
Đó là tất cả những gì bạn cần chỉnh sửa, vì vậy hãy lưu file .
Khởi động lại Mattermost bằng lệnh:
- sudo systemctl restart mattermost
Như vậy, bạn có thể reload domain Mattermost trong trình duyệt của bạn và quan sát một ổ khóa ở bên trái địa chỉ trang web, điều này nghĩa là bạn đã bảo vệ kết nối của bạn một cách chính xác.
Như vậy, certificate TLS của bạn đã được cấu hình thành công và domain của bạn có thể truy cập thông qua kết nối an toàn, bạn đã sẵn sàng để cấu hình Mattermost.
Bước 4 - Cài đặt Mattermost
Trong phần này, bạn sẽ tạo group của bạn trong Mattermost, cài đặt thông báo qua email và thay đổi thương hiệu server .
Khi bạn truy cập Mattermost lần đầu tiên, bạn cần tạo account với quyền quản trị cho server của bạn . Nếu bạn đã có account , bạn có thể đăng nhập thay thế. Sau khi đăng nhập, bạn sẽ thấy một trang cho bạn biết rằng không có đội nào bạn có thể tham gia.
Để khắc phục điều này, hãy chọn Tạo group . Bạn sẽ thấy một trang yêu cầu bạn đặt tên cho group của bạn (ví dụ: Sammy
):
Nhập tên bạn chọn và nhấp vào Tiếp theo . Sau đó, nó sẽ yêu cầu bạn xác định một địa chỉ web cho group của bạn, tại domain của bạn, đây sẽ là điểm truy cập cho group của bạn trong Mattermost:
Bạn có thể để nguyên URL. Sau khi bạn hoàn tất, hãy nhấp vào Hoàn tất . Mattermost sẽ tạo group của bạn và sau khi bạn bỏ qua hướng dẫn, bạn sẽ thấy giao diện chính, nơi bạn sẽ dành phần lớn thời gian để giao tiếp:
Giao diện sẽ được giải thích chi tiết trong bước tiếp theo. Để truy cập cài đặt, hãy nhấp vào tên user của bạn ở góc trên bên trái, sau đó nhấp vào Control panel hệ thống . Bạn sẽ chỉ có thể truy cập tùy chọn này nếu bạn là admin-user .
Ở phía bên trái là menu cung cấp quyền truy cập vào các phần của cấu hình Mattermost. Trước tiên, bạn sẽ cài đặt thông báo qua email, vì vậy hãy nhấp vào tùy chọn SMTP , có thể được tìm thấy trong Môi trường :
Để kết nối với server Postfix bạn đã cài đặt như một phần của yêu cầu , hãy nhập localhost
làm Server SMTP và 25
làm Cổng server SMTP . Nhấp vào nút Lưu màu xanh lam khi bạn hoàn tất và sau đó nhấn nút Kiểm tra kết nối nằm ở phía dưới. Bạn sẽ nhận được một thông báo trong hộp màu xanh lục cho biết Không có lỗi nào được báo cáo khi gửi email. Vui lòng kiểm tra hộp thư đến của bạn đảm bảo .
Đến đây bạn có thể kiểm tra hộp thư đến của email bạn đã đăng ký. Bạn sẽ tìm thấy một thông báo từ Mattermost, nói rằng cài đặt email đã được cài đặt chính xác. Nếu bạn không nhận được nó, hãy kiểm tra folder thư rác của bạn. Trong trường hợp bạn nhận được lỗi từ Mattermost, hãy kiểm tra kỹ những gì bạn đã nhập và nếu cần, hãy xem lại hướng dẫn yêu cầu .
Đến đây bạn đã xác minh email đang hoạt động, bạn cần bật thông báo qua email bằng cách chọn Thông báo bên dưới Cấu hình trang trong menu. Đặt cài đặt Bật thông báo qua email thành true
và đặt Thông báo từ địa chỉ thành địa chỉ email bạn chọn, chẳng hạn như mattermost@ your_domain
.
Bởi vì nó không cần thực sự tồn tại và sẽ không bị giám sát, hãy nhập no-reply
làm Tên hiển thị thông báo , là tên người gửi sẽ hiển thị trong ứng dụng email.Bạn có thể tùy chọn Bật tính năng Chia sẻ email để nén nhiều thư chưa đọc vào một email để giảm tổng số email mà bạn gửi cho các thành viên trong group của bạn . Nhấp vào Lưu khi bạn hoàn tất việc sửa đổi cài đặt.
Bạn đã bật thông báo qua email trên phạm vi global và bây giờ bạn có thể tùy chọn thay đổi nhãn hiệu server bằng cách chọn tùy chọn Tùy chỉnh bên dưới Cấu hình trang web . Tại đây, bạn có thể đặt Tên trang web và Mô tả trang web , cũng như tải lên hình ảnh và văn bản thương hiệu tùy chỉnh.
Bạn có thể thoát khỏi Control panel Hệ thống bằng cách nhấp vào tên user của bạn ở góc trên bên trái và chọn tùy chọn đầu tiên từ menu thả xuống.
Bạn đã tạo group của bạn trong Mattermost và cài đặt thông báo qua email, vì vậy bạn sẽ được thông báo về các cuộc thảo luận mới diễn ra trong group của bạn .
Kết luận
Như vậy, bạn có nền tảng nhắn tin tự lưu trữ, có thể mở rộng của riêng mình mà bạn và group của bạn có thể sử dụng để cộng tác trên tất cả các thiết bị. Như vậy, bạn có thể giao tiếp hiệu quả hơn, chia sẻ file và tìm kiếm trên các tin nhắn và kênh một cách dễ dàng.
Nếu bạn muốn tìm hiểu thêm về cách sử dụng giao diện user Mattermost, hãy truy cập tài liệu chính thức .
Các tin liên quan
Làm thế nào để quản lý OpenSSH trên Ubuntu 18.042020-07-28
Cách sử dụng Discord Webhooks để nhận thông báo về trạng thái trang web của bạn trên Server
2020-07-27
Cách cài đặt Discourse trên Ubuntu 18.04
2020-07-14
Cách cài đặt Discourse trên Ubuntu 20.04
2020-07-14
Cách thiết lập máy tính từ xa với X2Go trên Ubuntu 20.04
2020-07-14
Cách tập trung log với Journald trên Ubuntu 20.04
2020-07-10
Cách cài đặt và cấu hình Drone trên Ubuntu 20.04
2020-07-09
Cách thiết lập Mattermost trên Ubuntu 18.04
2020-07-07
Cách cài đặt Jenkins trên Ubuntu 20.04
2020-07-03
Cách cài đặt và cấu hình Zabbix để giám sát an toàn server từ xa trên Ubuntu 20.04
2020-06-30