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 :
- Một server Ubuntu 14.04 với bộ nhớ RAM tối thiểu được khuyến khích là 1 GB
- User không phải root có quyền sudo ( Cài đặt server ban đầu với Ubuntu 14.04 giải thích cách cài đặt điều này.)
- Một domain đã đăng ký đầy đủ. Bạn có thể mua một cái trên Namecheap hoặc nhận một cái miễn phí trên Freenom .
- Đảm bảo rằng domain của bạn được cấu hình để trỏ đến server của bạn. Hãy xem hướng dẫn này nếu bạn cần trợ giúp.
- Chứng chỉ SSL. Tạo certificate tự ký , nhận certificate miễn phí từ Let's Encrypt hoặc mua certificate từ nhà cung cấp khác.
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
, curl
và graphicsmagick
, 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
:
# 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.
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
và /etc/nginx/certificate.crt
tương ứng.
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:
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
và /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ởimain.js
cho biết tập lệnh của ta forever-service được đặt tên làmain.js
, không phảiapp.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:
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.
Bấm vào Gửi , sau đó chọn 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ủ:
Đó 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.
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 tên cho nó bạn muốn :
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:
Nhấp vào Quản trị . Nó sẽ hiển thị menu thứ hai:
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ẻ!
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.042016-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