如何在Ubuntu 14.04上安装、配置和部署Rocket.Chat

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
.cn 域名,1个 12个月
简介: 如何在Ubuntu 14.04上安装、配置和部署Rocket.Chat

简介

Rocket.Chat 是一个使用 Meteor 构建的开源消息应用程序。它支持视频会议、文件共享、语音消息,具有完整的 API 等功能。Rocket.Chat 非常适合那些希望对其通信拥有完全控制权的用户。

在本教程中,我们将在全新的 Ubuntu 服务器上安装和配置 Rocket.Chat,并设置 Nginx 作为反向代理,以提高安全性并使访问 Rocket.Chat 变得更加容易。完成后,您将拥有一个可以从几乎任何地方访问的可用的 Rocket.Chat 实例。

先决条件

要按照本教程操作,您需要:

  • 一个 Ubuntu 14.04 服务器,建议至少具有 1GB 的 RAM
  • 一个具有 sudo 权限的非 root 用户(《使用 Ubuntu 14.04 初始服务器设置》解释了如何设置此权限)
  • 一个完全注册的域名。您可以在 Namecheap 购买,或在 Freenom 免费获取。
  • 确保您的域名配置指向您的服务器。如果需要帮助,请查看本教程。
  • 一个 SSL 证书。生成自签名证书,从 Let’s Encrypt 获取免费证书,或从其他提供商购买。

步骤 1 — 安装依赖项

在本节中,我们将安装 Rocket.Chat 的一些依赖项,如 MongoDB 和 NodeJS。

首先,让我们启动 MongoDB。首先,我们需要添加一个密钥服务器,以便访问软件包。

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

然后,我们需要设置仓库。

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

现在,更新软件包列表。

sudo apt-get update

现在,我们可以继续安装 npmmongodb-orgcurlgraphicsmagick,这些都是 Rocket.Chat 的依赖项。

sudo apt-get install npm mongodb-org curl graphicsmagick

我们需要使用 NPM 安装一个软件包,以允许我们更改 Node 版本:

sudo npm install -g n

使用该软件包将 Node 版本更改为 0.10.40

sudo n 0.10.40

接下来,我们将安装 Rocket.Chat 本身并进行一些配置。

步骤 2 — 安装 Rocket.Chat

首先,使用 curl 下载最新稳定版本的 Rocket.Chat。

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

使用 tar 命令展开我们刚刚下载的存档。

tar zxvf rocket.chat.tgz

这将整个存档展开到一个名为 bundle 的目录中。让我们将 bundle 目录的内容移动到一个更容易记住的位置。

mv bundle Rocket.Chat

切换到我们将使用 NPM 安装 Rocket.Chat 的目录。

cd Rocket.Chat/programs/server

安装 Rocket.Chat。

npm install

返回到父级 Rocket.Chat 目录。

cd ../..

我们需要设置一些环境变量,以帮助 Rocket.Chat 跟踪诸如 URL、端口等信息。

首先,将 ROOT_URL 变量设置为您的域名。这必须是 URL 的形式。

export ROOT_URL=https://example.com/

将 MongoDB 的 URL 设置为 MONGO_URL 变量。

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

PORT 变量设置为 3000

export PORT=3000

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

node main.js

如果没有错误,它就可以工作了!不过,现在停止 Rocket.Chat 使用 CTRL+C。现在 Rocket.Chat 已安装,我们需要设置 Nginx 使用反向代理来代理其所有流量,从而使访问 Rocket.Chat 更加容易,并使用 SSL 证书加密所有通信。

步骤 3 — 使用 Nginx 设置反向代理

首先,安装 Nginx。

sudo apt-get install -y nginx

将您的证书私钥移动到 /etc/nginx/certificate.key

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

例如,如果您创建了 Let’s Encrypt 证书,您将使用 sudo cp /etc/letsencrypt/live/your_domain_name/privkey.pem /etc/nginx/certificate.key

修改密钥的权限,以防止未经授权的人获取访问权限。

sudo chmod 400 /etc/nginx/certificate.key

将证书本身复制到 /etc/nginx/certificate.crt

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

如果您创建了 Let’s Encrypt 证书,命令将类似于 sudo cp /etc/letsencrypt/live/your_domain_name/cert.pem /etc/nginx/certificate.crt

我们将为 Rocket.Chat 创建一个全新的配置,因此您可以删除默认配置以使其变得更加容易。

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

如果将来需要该文件,您仍然可以在 /etc/nginx/sites-available/default 中找到它。

使用 nano 或您喜欢的文本编辑器创建一个新的 /etc/nginx/sites-enabled/default

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

首先,我们将添加一个 upstream 块:

# 上游服务器

upstream backend {

server 127.0.0.1:3000;

}

在下面,让我们创建一个 `server` 块。第一部分告诉 Nginx 监听连接的端口,在本例中是 `:443`。它还让 Nginx 知道我们的主机名是什么。不要忘记用你的域名替换 `example.com`。

server {

listen 443;

server_name example.com;

在此之下,我们告诉 Nginx 存储 Rocket.Chat 的访问日志,并指向我们放置在 `/etc/nginx/certificate.key` 和 `/etc/nginx/certificate.crt` 的 SSL 证书和密钥。
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; # 不使用 SSLv3 参考:POODLE
现在我们用一个 `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;
}

}

以下是完整的文件供参考:

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; # 不使用 SSLv3 参考: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;
}

}

保存并退出文件。最后,重新启动 Nginx 完成工作。
```command
sudo service nginx restart

检查 Nginx 是否正在运行。

sudo service nginx status

如果你看到以下消息,表示 Nginx 正在运行:

* nginx is running

如果你看到错误消息,请检查 /var/log/nginx/rocketchat.access.log/var/log/nginx/access.log 的日志,或者 /var/log/nginx/error.log 的错误日志。你也可以运行 nginx -t 来验证你的 Nginx 配置文件,大多数错误都会在这里显示。

确保你仍然在 Rocket.Chat 文件夹中。

cd ~/Rocket.Chat

然后运行以下命令重新启动 Rocket.Chat。

node main.js

Rocket.Chat 现在应该在 https://example.com 上线。你可以通过在你喜欢的浏览器中访问该地址来验证。

在下一节中,我们将配置 Rocket.Chat 以使用一个名为 forever-service 的 node 模块在启动时自动运行。

步骤 4 —— 配置 Rocket.Chat 为服务

forever-service 自动为 Rocket.Chat 等 node 应用程序生成 init 脚本。首先,我们需要安装 forever 本身,forever-service 依赖于它。

sudo npm install -g forever

然后,安装 forever-service

sudo npm install -g forever-service

使用 forever-service 创建一个服务:

sudo forever-service install -s main.js -e "ROOT_URL=https://example.com/ MONGO_URL=mongodb://localhost:27017/rocketchat PORT=3000" rocketchat
  • -s 标志后跟 main.js 告诉 forever-service 我们的脚本名为 main.js,而不是默认的 app.js
  • -e 标志后跟着 "ROOT_URL=https://example.com/ MONGO_URL=mongodb://localhost:27017/rocketchat PORT=3000" 将我们的环境变量传递给 forever-service。
  • 最后,rocketchat 告诉 forever-service 服务的名称。

要获取有关 forever-service 语法的更详细信息,请运行 forever-service --help

现在我们可以启动 Rocket.Chat。这将初始化由 forever-service 创建的 rocketchat 服务。

sudo start rocketchat

Rocket.Chat 现在应该在你在步骤 2 中设置的 URL 上线。确保你在这里使用 HTTPS。

Rocket.Chat 现在已经准备就绪。在下一节中,我们将向 Rocket.Chat 添加我们的第一个管理员用户,并在界面周围进行一次导览。

第五步 — 配置和使用 Rocket.Chat

访问之前设置 Rocket.Chat 的 URL。你应该会看到类似这样的页面:

!Rocket.Chat 登录页面

点击 注册新账户,然后输入你的第一个管理员用户信息。

!Rocket.Chat 注册

点击 提交,然后为你的新用户选择一个用户名:

!为新用户设置用户名

点击 使用此用户名,你将被带到主页:

!Rocket.Chat 主页

就是这样!你会看到右侧已经为你创建了一个 #general 频道。如果你点击它,你将被带到聊天室。随意尝试一下。

!默认的 #general 聊天室

现在让我们来看一下界面。首先,让我们通过点击 频道 旁边的小加号按钮来创建一个新频道:

!创建一个新频道

随意给它取一个名字:

!输入图片描述

现在点击 保存,你将被带到你的新频道。

要访问管理界面,点击你的用户名旁边的小箭头。它会拉出一个菜单:

!使用这个菜单,你可以设置你的状态,以及访问像管理菜单这样的东西。

点击 管理。它会弹出第二个菜单:

!这是管理菜单。

使用这个菜单,我们可以配置和管理 Rocket.Chat 安装的每个方面。在 用户 部分,我们可以管理单个用户的权限,甚至邀请新用户。我们还可以使用 集成 视图为我们的安装添加更多功能。

结论

恭喜!你现在拥有了自己的聊天解决方案:Rocket.Chat,在运行 Ubuntu 14.04 服务器上。它已经设置为使用 forever-service 在启动时自动启动,并且通过 Nginx 反向代理完全配备了 SSL。你现在可能想要添加更多成员,创建更多频道,或者可能查看管理菜单的集成部分。玩得开心!


目录
相关文章
|
3天前
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
46 11
|
1月前
|
Ubuntu 开发工具 git
Ubuntu安装homebrew的完整教程
本文介绍了如何在没有公网的情况下安装 Homebrew。首先访问 Homebrew 官网,然后通过阿里云的镜像克隆安装脚本,并创建普通用户进行安装。接着修改 `install.sh` 文件指向国内镜像,执行安装命令。最后配置环境变量并更换 Homebrew 源为国内镜像,确保安装顺利。
236 50
|
26天前
|
Ubuntu
ubuntu和debian 的安装包dpkg管理命令对安装包进行安装,查询,卸载
Ubuntu dpkg 软件包管理命令概览:安装、卸载、查看和配置软件包。包括解决依赖、强制卸载、列出及过滤已安装包、查看包详情等操作。
53 10
|
28天前
|
Ubuntu API 开发工具
PSOPT在Ubuntu22.04下的安装
通过上述步骤,可以在Ubuntu 22.04下成功安装并配置PSOPT。PSOPT是一个功能强大的工具,适用于解决各种最优控制问题。确保在安装前满足系统要求,并仔细按照步骤操作,可以避免大多数常见问题。通过MATLAB与PSOPT的结合,您可以更高效地处理复杂的控制问题,并获得准确的解决方案。
31 5
|
29天前
|
Ubuntu 网络协议 关系型数据库
超聚变服务器2288H V6使用 iBMC 安装 Ubuntu Server 24.04 LTS及后续系统配置
【11月更文挑战第15天】本文档详细介绍了如何使用iBMC在超聚变服务器2288H V6上安装Ubuntu Server 24.04 LTS,包括连接iBMC管理口、登录iBMC管理界面、配置RAID、安装系统以及后续系统配置等步骤。
|
2月前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
210 4
Linux系统之Ubuntu安装cockpit管理工具
|
1月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
51 2
|
2月前
|
Kubernetes Ubuntu Docker
从0开始搞K8S:使用Ubuntu进行安装(环境安装)
通过上述步骤,你已经在Ubuntu上成功搭建了一个基本的Kubernetes单节点集群。这只是开始,Kubernetes的世界广阔且深邃,接下来你可以尝试部署应用、了解Kubernetes的高级概念如Services、Deployments、Ingress等,以及探索如何利用Helm等工具进行应用管理,逐步提升你的Kubernetes技能树。记住,实践是最好的老师,不断实验与学习,你将逐渐掌握这一强大的容器编排技术。
280 1
|
1月前
|
消息中间件 Ubuntu Java
Ubuntu系统上安装Apache Kafka
Ubuntu系统上安装Apache Kafka
|
2月前
|
Ubuntu Linux
Ubuntu 16.04下无法安装.deb的解决方法
希望以上策略能有效协助您克服在Ubuntu 16.04中安装.deb文件时遇到的挑战。
54 0
下一篇
DataWorks