云网牛站
所在位置:首页 > Linux云服务器 > 在Ubuntu 16.04系统上安装Rocket.Chat的方法

在Ubuntu 16.04系统上安装Rocket.Chat的方法

2019-02-27 11:01:16作者:王优明稿源:云网牛站

本文介绍使用Nginx和Letsencrypt的方法在Ubuntu 16.04系统上安装Rocket.Chat。它是一个使用Meteor Web框架构建的开源消息传递应用程序,具有视频会议、语音留言、文件共享、功能齐全的API功能,是Hipchat和Slack Chat平台的替代品,适合那些喜欢完全控制其通信的人,比如语音、视频和文件共享。我们安装的Rocket.Chat将使用Nginx Web服务器和SSL代理,因此,在设置Rocket.Chat之前,我们首先要安装依赖项。

 

在Ubuntu 16.04上安装Nginx和certbot-auto

让我们安装Nginx和certbot客户端,我们将用它来托管Rocket.Chat,我们还将使用ufw防火墙来保护我们的应用程序:

$ sudo apt-get install nginx ufw g++ build-essential

使用以下命令安装certbot-auto:

# wget https://dl.eff.org/certbot-auto -P /usr/local/bin

# chmod a+x /usr/local/bin/certbot-auto

我假设你有一个子域,你将在Nginx上使用子域来为具有有效DNS记录的Rocket.Chat应用程序提供服务。

 

请求使用Letsencrypt SSL证书与Rocket.Chat一起使用

要获得Letsencrypt证书,我们使用该命令:

# export DOMAIN="chat.domain.com"

# export EMAIL_ALERT="admin@domain.com"

# /usr/local/bin/certbot-auto certonly --standalone -d $DOMAIN  \

--preferred-challenges http --agree-tos -n -m  $EMAIL_ALERT --keep-until-expiring

请记住将chat.domain.com替换为Rocket.Chat和admin@domain.com的有效域/子域,并使用电子邮件地址在SSL即将到期时接收警报。

成功的ssl生成应该会有下图的信息输出:

在Ubuntu 16.04系统上安装Rocket.Chat的方法

chat.domain.com是你的真实域名或子域名。

 

在Ubuntu 16.04上安装MongoDB

Rocket.Chat使用MongoDB来存储其数据,使用以下命令在Ubuntu上安装它:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5

echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list

sudo apt-get update

sudo apt-get install -y mongodb-org curl

参考:在Ubuntu 18.04/16.04系统中安装MongoDB的方法

安装MongoDB Replica Set:

Rocket.Chat使用MongoDB replica set OPTIONALLY通过Meteor Oplog尾部提高性能,使用YAML语法编辑文件/etc/mongod.conf:

replication:

replSetName: "001-rs"

需要重启MongoDB服务:

# systemctl restart mongod

# systemctl enable mongod

启动MongoDB shell并启动副本集:

# mongo

> rs.initiate()

你应该得到如下输出:

{

"info2" : "no configuration specified. Using a default configuration for the set",

"me" : "127.0.0.1:27017",

"ok" : 1,

"operationTime" : Timestamp(1522961588, 1),

"$clusterTime" : {

"clusterTime" : Timestamp(1522961588, 1),

"signature" : {

"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),

"keyId" : NumberLong(0)

}

}

}

注意“ok”值应为1,任何其他值,即93,表示出错。

将Rocket.Chat的以下环境变量添加到~/.bashrc(参考:什么是bashrc配置文件,如何对其进行编辑):

export MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=001-rs

然后执行:

# source ~/.bashrc

 

在Ubuntu 16.04上安装graphicsmagick及Node.js

GraphicsMagick是一个强大的工具和库集合,用于以任何更流行的图像格式(包括GIF、JPEG、PNG、PDF和WebP)读取,写入和操作图像,运行以下命令:

$ sudo apt-get install graphicsmagick

关于在Ubuntu 16.04上安装Node.js,可以参考文章:Ubuntu 16.04安装Node.js

 

安装Rocket.Chat的方法

下载地址可以看:https://ywnz.com/linuxrj/3692.html

现在下载Rocket.Chat的稳定版本:

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

然后解压二进制版本:

# tar zxvf rocket.chat.tgz

这会将所有内容扩展到捆绑目录中,接下来,确保MongoDB服务器已经启动并运行,然后,设置环境变量并运行Rocket.Chat服务器:

mv bundle Rocket.Chat

cd Rocket.Chat/programs/server

npm install

cd ../..

export ROOT_URL=http://localhost:3000/

export PORT=3000

export MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=001-rs

现在你可以使用以下命令运行Rocket.Chat:

$ sudo node main.js

参考画面截图:

在Ubuntu 16.04系统上安装Rocket.Chat的方法

注:在Ubuntu下使用snap安装命令,支持Ubuntu 18.04等版本:

sudo snap install rocketchat-server

 

使用SSL配置Nginx

我们现在需要为Rocket.Chat服务配置Nginx,将以下内容添加到文件/etc/nginx/conf.d/rocker-chat.conf中:

# Upstream definition

upstream backend {

server 127.0.0.1:3000;

}

# http to https redirection

server {

listen 80;

server_name chat.domain.com;

rewrite ^ https://$server_name$request_uri? permanent;

}

# HTTPS Server

server {

listen 443;

server_name chat.domain.com;

error_log /var/log/nginx/rocket-chat.access.log;

ssl on;

ssl_certificate /etc/letsencrypt/live/chat.domain.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/chat.domain.com/privkey.pem;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE

location / {

proxy_pass http://backend/;

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;

}

}

 

forever配置Rocket.Chat服务

为了让Rocker.Chat在服务器启动时启动,我们需要forever配置它,npm包提供forever-service,自动生成节点应用程序的初始脚本,如Rocket.Chat。

使用以下命令安装forever:

$ sudo npm install -g forever

然后,安装forever-service:

$ sudo npm install -g forever-service

现在使用forever-service创建服务:

# forever-service install -s main.js -e "ROOT_URL=https://localhost/ \

MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=001-rs PORT=3000" rocket-chat

-s指定脚本名称,在本例中为main.js。

-e之后是我们正在使用的环境变量。

rocket-chat是我们正在创建的服务名称。

你应该得到这样的输出:

Platform - Ubuntu 16.04 LTS

rocket-chat provisioned successfully

Commands to interact with service rocket-chat

Start   - "sudo service rocket-chat start"

Stop    - "sudo service rocket-chat stop"

Status  - "sudo service rocket-chat status"

Restart - "sudo service rocket-chat restart"

现在我们可以启动Rocket.Chat,这将初始化由forever-service创建的rocket-chat service:

$ sudo service rocket-chat start

要检查状态,请使用:

$ sudo service rocket-chat status

 

相关主题

在Ubuntu 18.04 Server中安装LEMP的方法[Nginx、MariaDB、PHP7.2]

精选文章
热门文章