Thứ hai, 07/03/2016 | 00:00 GMT+7

Cách cài đặt, cấu hình và triển khai Rocket.Chat trên Ubuntu 14.04

Rocket.Chat là một ứng dụng nhắn tin open-souce được xây dựng với Meteor. Nó hỗ trợ hội nghị truyền hình, chia sẻ file , tin nhắn thoại, có API đầy đủ tính năng và hơn thế nữa. Rocket.Chat là lựa chọn tuyệt vời cho những ai muốn có toàn quyền kiểm soát thông tin liên lạc của họ.

Trong hướng dẫn này, ta sẽ cài đặt và cấu hình Rocket.Chat trên server Ubuntu mới cũng như cài đặt Reverse Proxy qua Nginx để tăng cường bảo mật và giúp truy cập Rocket.Chat dễ dàng hơn nhiều. Sau khi ta hoàn thành, bạn sẽ có một version chức năng của Rocket.Chat có thể truy cập hầu như ở mọi nơi.

Yêu cầu

Để làm theo hướng dẫn này, bạn cần :

Bước 1 - Cài đặt phụ thuộc

Trong phần này, ta sẽ cài đặt một số phụ thuộc của Rocket.Chat như MongoDB và NodeJS.

Hãy bắt đầu với việc cài đặt và chạy MongoDB. Đầu tiên, ta cần thêm một keyerver để có thể truy cập các gói.

  • sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

Sau đó, ta cần cài đặt repo để sử dụng.

  • echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

Bây giờ, hãy cập nhật danh sách gói.

  • sudo apt-get update

Bây giờ đã xong, ta có thể tiếp tục và cài đặt npm , mongodb-org , curlgraphicsmagick , tất cả đều là các phụ thuộc của Rocket.Chat:

  • sudo apt-get install npm mongodb-org curl graphicsmagick

Ta cần cài đặt một gói sử dụng NPM để cho phép ta thay đổi version nút:

  • sudo npm install -g n

Sử dụng gói đó để thay đổi version nút thành 0.10.40 .

  • sudo n 0.10.40

Tiếp theo, ta sẽ cài đặt Rocket.Chat và thực hiện một chút cấu hình.

Bước 2 - Cài đặt Rocket.Chat

Để bắt đầu, hãy download version ổn định mới nhất của Rocket.Chat bằng cách sử dụng curl .

  • curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz

Mở rộng repository mà ta vừa download bằng lệnh tar .

  • tar zxvf rocket.chat.tgz

Điều này mở rộng toàn bộ repository thành một folder có tên là bundle . Hãy chuyển nội dung của folder bundle thành một thứ dễ nhớ hơn.

  • mv bundle Rocket.Chat

Thay đổi folder nơi ta sẽ cài đặt Rocket.Chat bằng NPM.

  • cd Rocket.Chat/programs/server

Cài đặt Rocket.Chat.

  • npm install

Di chuyển trở lại folder Rocket.Chat mẹ.

  • cd ../..

Ta cần cài đặt một số biến môi trường để giúp Rocket.Chat theo dõi những thứ như URL, cổng, v.v.

Trước tiên, hãy đặt biến ROOT_URL thành domain của bạn. Điều này phải ở dạng URL.

  • export ROOT_URL=https://example.com/

Đặt URL của MongoDB dưới biến MONGO_URL .

  • export MONGO_URL=mongodb://localhost:27017/rocketchat

Đặt biến PORT thành 3000 .

  • export PORT=3000

Đến đây bạn có thể chạy Rocket.Chat bằng lệnh sau:

  • node main.js

Nếu không có bất kỳ lỗi nào, nó hoạt động! Tuy nhiên, hiện tại, hãy dừng Rocket.Chat bằng cách sử dụng CTRL+C Bây giờ Rocket.Chat đã được cài đặt, ta cần cài đặt Nginx để ủy quyền tất cả lưu lượng truy cập của nó bằng Reverse Proxy , giúp việc truy cập Rocket.Chat dễ dàng hơn và mã hóa tất cả thông tin liên lạc bằng certificate SSL của bạn.

Bước 3 - Cài đặt Reverse Proxy với Nginx

Để bắt đầu, hãy cài đặt Nginx.

  • sudo apt-get install -y nginx

Di chuyển private key của certificate của bạn tới /etc/nginx/certificate.key .

  • sudo cp /path/to/your/key /etc/nginx/certificate.key

Ví dụ: nếu bạn đã tạo certificate Let's Encrypt, bạn sẽ sử dụng sudo cp /etc/letsencrypt/live/ your_domain_name /privkey.pem /etc/nginx/certificate.key .

Sửa đổi quyền của khóa để những kẻ trộm trái phép không thể truy cập.

  • sudo chmod 400 /etc/nginx/certificate.key

Sao chép chính certificate vào /etc/nginx/certificate.crt .

  • sudo cp /path/to/your/cert /etc/nginx/certificate.crt

Nếu bạn đã tạo certificate Let's Encrypt, lệnh sẽ tương tự như sudo cp /etc/letsencrypt/live/ your_domain_name /cert.pem /etc/nginx/certificate.crt .

Ta sẽ tạo một cấu hình hoàn toàn mới cho Rocket.Chat, vì vậy bạn có thể xóa mặc định để dễ dàng hơn một chút.

  • sudo rm /etc/nginx/sites-enabled/default

Nếu bạn cần lấy lại file đó vì bất kỳ lý do gì trong tương lai, file vẫn có sẵn tại /etc/nginx/sites-available/default

Tạo /etc/nginx/sites-enabled/default với nano hoặc editor yêu thích của bạn.

  • sudo nano /etc/nginx/sites-enabled/default

Đầu tiên, ta sẽ thêm một khối upstream :

/ etc / nginx / sites-enable / default
# Upstreams upstream backend {     server 127.0.0.1:3000; } 

Bên dưới đó, hãy tạo một khối server . Phần đầu tiên cho Nginx biết cổng nào để lắng nghe các kết nối, trong trường hợp này là :443 . Nó cũng cho phép nó biết tên server của ta là gì. Đừng quên thay thế example.com bằng domain của bạn.

/ etc / nginx / sites-enable / default
server {     listen 443;     server_name example.com; 

Theo đó, ta nói với Nginx nơi để lưu trữ các bản ghi truy cập Rocket.Chat, và trỏ nó đến các certificate SSL và ta key đặt trong /etc/nginx/certificate.key/etc/nginx/certificate.crt tương ứng.

/ etc / nginx / sites-enable / default
    error_log /var/log/nginx/rocketchat.access.log;      ssl on;     ssl_certificate /etc/nginx/certificate.crt;     ssl_certificate_key /etc/nginx/certificate.key;     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE 

Và bây giờ ta kết thúc cấu hình với một khối location :

    location / {         proxy_pass http://example.com:3000/;         proxy_http_version 1.1;         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-Forward-For $proxy_add_x_forwarded_for;         proxy_set_header X-Forward-Proto http;         proxy_set_header X-Nginx-Proxy true;          proxy_redirect off;     } } 

Đây là toàn bộ file để tham khảo:

/ etc / nginx / sites-enable / default
server {     listen 443;     server_name example.com;     error_log /var/log/nginx/rocketchat.access.log;      ssl on;     ssl_certificate /etc/nginx/certificate.crt;     ssl_certificate_key /etc/nginx/certificate.key;     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE      location / {         proxy_pass http://example.com:3000/;         proxy_http_version 1.1;         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-Forward-For $proxy_add_x_forwarded_for;         proxy_set_header X-Forward-Proto http;         proxy_set_header X-Nginx-Proxy true;          proxy_redirect off;     } } 

Lưu và thoát khỏi file . Cuối cùng, khởi động lại Nginx để hoàn thành công việc.

  • sudo service nginx restart

Kiểm tra xem Nginx có đang chạy không.

  • sudo service nginx status

Nếu bạn thấy thông báo sau, Nginx đang hoạt động:

 * nginx is running 

Nếu bạn thấy thông báo lỗi, hãy kiểm tra log tại /var/log/nginx/rocketchat.access.log/var/log/nginx/access.log hoặc log lỗi tại /var/log/nginx/error.log . Bạn cũng có thể chạy nginx -t để xác minh file cấu hình Nginx của bạn , đây là nơi hầu hết các lỗi hiển thị.

Đảm bảo rằng bạn vẫn ở trong folder Rocket.Chat .

  • cd ~/Rocket.Chat

Sau đó, chạy lệnh sau để khởi động lại Rocket.Chat.

  • node main.js

Rocket.Chat hiện sẽ xuất hiện trực tuyến tại https:// example.com . Bạn có thể xác minh điều này bằng cách truy cập địa chỉ đó trong trình duyệt yêu thích của bạn.

Trong phần tiếp theo, ta sẽ cấu hình Rocket.Chat để tự động chạy khi khởi động bằng cách sử dụng module nút có tên là forever-service .

Bước 4 - Cấu hình Rocket.Chat như một dịch vụ

forever-service tự động tạo các tập lệnh init cho các ứng dụng nút như Rocket.Chat. Để bắt đầu, ta cần cài đặt forever chính nó, forever-service phụ thuộc vào.

  • sudo npm install -g forever

Sau đó, cài đặt forever-service .

  • sudo npm install -g forever-service

Tạo dịch vụ bằng dịch vụ forever-service :

  • sudo forever-service install -s main.js -e "ROOT_URL=https://example.com/ MONGO_URL=mongodb://localhost:27017/rocketchat PORT=3000" rocketchat
  • Cờ -s theo sau bởi main.js cho biết tập lệnh của ta forever-service được đặt tên là main.js , không phải app.js , theo mặc định.
  • Cờ -e theo sau bởi "ROOT_URL=https:// example.com / MONGO_URL=mongodb://localhost:27017/rocketchat PORT=3000" chuyển các biến môi trường của ta sang dịch vụ vĩnh viễn.
  • Cuối cùng, rocketchat nói với forever-service nên đặt tên cho dịch vụ là gì.

Để biết thêm thông tin chi tiết về cú pháp của forever-service, hãy chạy forever-service --help .

Bây giờ ta có thể khởi động Rocket.Chat. Thao tác này sẽ khởi tạo dịch vụ rocketchat được tạo bởi forever-service .

  • sudo start rocketchat

Rocket.Chat bây giờ sẽ xuất hiện tại URL bạn đã đặt ở Bước 2. Đảm bảo rằng bạn đang sử dụng HTTPS tại đây.

Rocket.Chat đã sẵn sàng hoạt động. Trong phần tiếp theo, ta sẽ thêm admin-user đầu tiên của bạn vào Rocket.Chat và tham quan giao diện.

Bước 5 - Cấu hình và sử dụng Rocket.Chat

Truy cập URL mà ta đã đặt Rocket.Chat đã cài đặt trước đó. Bạn sẽ thấy thông tin như thế này:

Trang đăng nhập của Rocket.Chat

Nhấp vào Đăng ký account mới , sau đó nhập thông tin user cho administrator đầu tiên của bạn.

Rocket.Chat đăng ký

Bấm vào Gửi , sau đó chọn tên user cho user mới của bạn:

Đặt tên  user  cho  user  mới của bạn

Sau khi nhấp vào Sử dụng tên user này , bạn sẽ được đưa đến trang chủ:

Trang chủ của Rocket.Chat

Đó là tất cả! Bạn sẽ thấy ở bên phải, # kênh chung đã được tạo cho bạn. Nếu bạn nhấp vào nó, bạn sẽ được đưa đến phòng trò chuyện. Hãy thoải mái chơi xung quanh một chút.

# Phòng trò chuyện chung mặc định

Bây giờ ta hãy tham quan giao diện. Trước tiên, hãy tiếp tục và tạo một kênh mới bằng cách nhấp vào nút dấu cộng nhỏ bên cạnh Kênh :

Tạo một kênh mới

Đặt tên cho nó bạn muốn :

nhập mô tả hình ảnh ở đây

Bây giờ hãy nhấp vào Lưu và bạn sẽ được đưa đến kênh mới của bạn .

Để truy cập giao diện Quản trị, hãy nhấp vào mũi tên nhỏ bên cạnh tên user của bạn. Nó sẽ kéo xuống một menu:

Sử dụng menu này, bạn có thể đặt trạng thái  của bạn  và truy cập những thứ như menu Quản trị.

Nhấp vào Quản trị . Nó sẽ hiển thị menu thứ hai:

Đây là menu Quản trị.

Sử dụng menu này, ta có thể cấu hình và quản lý mọi khía cạnh của cài đặt Rocket.Chat. Trong phần User , ta có thể quản lý quyền của từng user và thậm chí mời những người mới. Ta cũng có thể thêm nhiều tính năng hơn vào cài đặt của bạn bằng cách sử dụng chế độ xem Tích hợp .

Kết luận

Xin chúc mừng! Như vậy, bạn có giải pháp trò chuyện rất riêng cho bạn và group của bạn: Rocket.Chat, chạy trên server Ubuntu 14.04. Nó được cài đặt để chạy tự động khi khởi động bằng forever-service và được trang bị đầy đủ SSL bằng Reverse Proxy Nginx. Bây giờ, bạn có thể cần thêm nhiều thành viên hơn, tạo thêm kênh hoặc có thể xem phần Tích hợp của menu Quản trị. Chúc vui vẻ!


Tags:

Các tin liên quan

Cách cài đặt ứng dụng khách Dropbox làm dịch vụ trên Ubuntu 14.04
2016-02-24
Cách thiết lập cụm sản xuất Elasticsearch trên Ubuntu 14.04
2016-02-22
Cách chạy ứng dụng Meteor an toàn với Sandstorm trên Ubuntu 14.04
2016-02-10
Cách bảo vệ WordPress khỏi các cuộc tấn công XML-RPC trên Ubuntu 14.04
2016-02-04
Cách tạo blog với Hexo trên Ubuntu 14.04
2016-02-04
Cách cài đặt Graylog 1.x trên Ubuntu 14.04
2016-02-04
Cách bảo mật HAProxy bằng Let's Encrypt trên Ubuntu 14.04
2016-01-22
Cách backup database OrientDB của bạn trên Ubuntu 14.04
2015-12-19
Cách cài đặt và cấu hình OrientDB trên Ubuntu 14.04
2015-12-19
Cách cài đặt và cấu hình Naxsi trên Ubuntu 14.04
2015-12-19