在 Ubuntu 16.04 上安装 Rocket.Chat
介绍
Rocket.Chat 是一个用于团队沟通的消息系统,类似于 Slack。它具有多种功能,包括:
- 视频会议
- 帮助台聊天
- 文件共享
- 语音留言
- 链接预览
本教程介绍如何在 Ubuntu 16.04 系统上安装和配置 Rocket.Chat 服务器。
入门
首先,安装 Rocket.Chat 所需的所有依赖项:
apt install graphicsmagick build-essential
安装MongoDB
该系统需要 MongoDB,所以我们先安装它。 MongoDB 提供了 Ubuntu LTS 的软件包。首先,添加其密钥服务器:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
接下来,添加存储库:
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
更新 apt 存储库并安装数据库:
apt update
apt install mongodb-org
打开 MongoDB 并使用 systemd 将其设置为在启动时自动运行:
systemctl start mongod
systemctl enable mongod
安装 Node.js 和 npm
Rocket.Chat 需要 Node.js 和 npm,并且都可以在 Ubuntu 存储库上找到。使用以下代码安装:
apt install nodejs
apt install npm
接下来,安装
n
(一个让管理员可以更改节点版本的工具)使用 npm:
npm install -g n
消息系统需要 Node.js 4.5+,因此请确保选择 4.5:
n 4.5
使用以下代码检查到目前为止一切是否正常:
node --version
配置 MongoDB 副本集(可选)
这是一个可选步骤,但那些想要提高性能的人应该遵循它。 Rocket.Chat Server 使用 MongoDB 副本集。该副本背后的概念是,它形成一组都在同一数据集上工作的 MongoDB 进程,从而提供高可用性。
要启用这些副本,请编辑 mongod.conf 配置文件:
$EDITOR /etc/mongod.conf
在那里,添加此部分:
replication:
replSetName: "001-rs"
保存、退出并重新启动 MongoDB:
systemctl restart mongod
接下来,运行其 shell 并启动副本集:
mongo
> rs.initiate()
输出应如下所示:
{
"info2" : "no configuration explicitly specified -- making one",
"me" : "localhost:27017",
"info" : "Config now saved locally. Should come online in about a minute.",
"ok" : 1
}
注意最后一行!重要的是“ok”恰好“1”。任何其他数字都意味着发生了错误。
提示符应该变成
001-rs:PRIMARY>
,这表示 MongoDB 正在使用副本集。
退出并添加以下环境变量到系统中:
MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=001-rs
例如,可以通过编辑
~/.bashrc
文件并添加以下内容:
export MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=001-rs
接下来,重新启动 MongoDB:
systemctl restart mongod
安装 Rocket.Chat
现在,是时候安装 Rocket.Chat 了,在
/var/www
目录。下载最新版本:
cd /var/www
curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz
提取存档:
tar xzf rocket.chat.tgz
重命名提取的文件夹:
mv bundle Rocket.Chat
接下来,设置环境变量并使用以下命令运行 Rocket.Chat 服务器:
cd Rocket.Chat/programs/server
npm install
cd ../..
export ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000/
export MONGO_URL=mongodb://localhost:27017/rocketchat
export PORT=3000
node main.js
使用副本集的人应该使用以下内容设置 MONGO_URL 变量:
mongodb://localhost:27017/rocketchat?replicaSet=001-rs
Rocket.Chat 已安装并配置,但需要在 Web 服务器后面进行配置。在本教程中,我们将使用 NGINX。
安装和配置 NGINX
安装网络服务器:
apt install nginx
创建一个新的 SSL 目录,其中将存储证书:
mkdir -p /etc/nginx/ssl/
在此目录下,生成一个新目录:
cd /etc/nginx/ssl
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/rocketchat.crt -keyout /etc/nginx/ssl/rocketchat.key
chmod 400 rocketchat.key
接下来,创建虚拟主机配置:
$EDITOR /etc/nginx/sites-available/rocketchat
在那里粘贴以下配置:
Upstreams
upstream backend {
server 127.0.0.1:3000;
}
Redirect Options
server {
listen 80;
server_name chat.mydomain.com;
# enforce https
return 301 https://$server_name$request_uri;
}
HTTPS Server
server {
listen 443;
server_name chat.mydomain.com;
error_log /var/log/nginx/rocketchat.access.log;
ssl on;
ssl_certificate /etc/nginx/ssl/rocketchat.crt;
ssl_certificate_key /etc/nginx/ssl/rocketchat.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # dont use SSLv3 ref: POODLE
location / {
proxy_pass http://192.168.1.110: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;
}
}
保存、退出并激活此配置:
ln -s /etc/nginx/sites-available/rocketchat /etc/nginx/sites-enabled/rocketchat
然后,测试 NGINX:
nginx -t
如果没有出现错误,请重新启动 NGINX:
systemctl restart nginx
更新环境变量并运行 Rocket.Chat:
#cd /var/www/Rocket.Chat/
export ROOT_URL=https://chat.mydomain.com
export MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=001-rs
export PORT=3000
node main.js
最后一步是将以下 URL 插入 Web 浏览器:https://chat.mydomain.com 注册新的管理员帐户并完成图形配置。最后,Rocket.Chat 消息系统将可供日常使用。
结论
你有它!我们刚刚解释了如何使用 NGINX 在 Ubuntu 16.04 系统上安装和配置 Rocket.Chat 服务器。这个有用的在线沟通程序可以帮助您的团队更有效地工作并进行更多协作!不要忘记,您可以使用各种网络服务器来运行 Rocket.Chat,无需坚持使用 NGINX!