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

2023-11-17

介绍

火箭聊天是一个用 Meteor 构建的开源消息传递应用程序。它支持视频会议、文件共享、语音消息、拥有功能齐全的 API 等等。 Rocket.Chat 对于那些喜欢完全控制自己的通信的人来说非常有用。

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

先决条件

要学习本教程,您将需要:

  • 一台 Ubuntu 14.04 服务器,建议至少具有 1 GB RAM
  • 具有 sudo 权限的非 root 用户(使用 Ubuntu 14.04 进行初始服务器设置解释了如何设置。)
  • 完全注册的域名。您可以在名称廉价或免费获得一份Freenom.
  • 确保您的域名已配置为指向您的服务器。查看本教程如果你需要帮助。
  • SSL 证书。生成自签名证书, [从 Let’s Encrypt 获取免费的](https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-14-04),或从其他提供商处购买。

第 1 步 — 安装依赖项

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

让我们从启动并运行 MongoDB 开始。首先,我们需要添加一个密钥服务器,以便我们可以访问这些包。

  1. sudoapt-key adv--密钥服务器hkp://keyserver.ubuntu.com:80--recv7F0CEB10

然后我们需要设置要使用的存储库。

  1. 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

现在,更新软件包列表。

  1. sudo apt-get update

现在已经完成了,我们可以继续安装npm, mongodb-org, curl and graphicsmagick,这些都是 Rocket.Chat 的依赖项:

  1. sudo apt-get install npmMongoDB-orgcurl图形魔法

我们需要使用 NPM 安装一个包来允许我们更改节点版本:

  1. sudo npm install -g n

使用该包将节点版本更改为0.10.40.

  1. sudo n 0.10.40

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

第 2 步 — 安装 Rocket.Chat

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

  1. curl -Lhttps://rocket.chat/releases/latest/download-o火箭聊天.tgz

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

  1. tarzxvf火箭.chat.tgz

这会将整个存档扩展为名为的目录bundle。让我们移动一下内容bundle目录到更容易记住的东西。

  1. mv捆绑 Rocket.Chat

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

  1. cdRocket.Chat/程序/服务器

安装 Rocket.Chat。

  1. npm install

移回父级Rocket.Chat目录。

  1. cd ../..

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

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

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

在下面设置 MongoDB 的 URLMONGO_URL多变的。

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

Set the PORT变量为3000.

  1. export PORT=3000

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

  1. nodemain.js

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

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

首先,安装 Nginx。

  1. sudo apt-get install -y nginx

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

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

For example, if you created a Let’s Encrypt certificate, you would use sudo cp /etc/letsencrypt/live/your_domain_name/privkey.pem /etc/nginx/certificate.key.

修改密钥的权限,以便未经授权的窃贼无法获得访问权限。

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

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

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

If you created a Let’s Encrypt certificate, the command would be similar to sudo cp /etc/letsencrypt/live/your_domain_name/cert.pem /etc/nginx/certificate.crt.

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

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

如果您将来因任何原因需要取回该文件,仍然可以在以下位置找到该文件:/etc/nginx/sites-available/default

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

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

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

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

Underneath that, let’s create a server block. The first part tells Nginx which port to listen for connections on, in this case :443. It also let’s it know what our hostname is. Don’t forget to replace example.com with your domain name.

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

在此之下,我们告诉 Nginx 在哪里存储 Rocket.Chat 的访问日志,并将其指向我们放置的 SSL 证书和密钥/etc/nginx/certificate.key and /etc/nginx/certificate.crt分别。

/etc/nginx/sites-enabled/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

现在我们完成配置location block:

    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;
    }
}

这是供参考的完整文件:

/etc/nginx/sites-enabled/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;
    }
}

保存并退出文件。最后,重新启动 Nginx 即可完成工作。

  1. sudo servicenginx 重启

检查 Nginx 是否正在运行。

  1. sudo servicenginx 状态

如果您看到以下消息,则表明 Nginx 已启动并正在运行:

 * nginx is running

如果您看到错误消息,请检查日志/var/log/nginx/rocketchat.access.log and /var/log/nginx/access.log或错误日志位于/var/log/nginx/error.log。你也可以运行nginx -t验证您的 Nginx 配置文件,这是大多数错误出现的地方。

确保您仍在Rocket.Chat folder.

  1. cd~/Rocket.Chat

然后运行以下命令再次启动 Rocket.Chat。

  1. nodemain.js

Rocket.Chat should now be live at https://example.com. You can verify this by visiting that address in your favorite browser.

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

第 4 步 — 将 Rocket.Chat 配置为服务

forever-service自动为 Rocket.Chat 等节点应用程序生成初始化脚本。首先,我们需要安装forever本身,其中forever-service依赖于取决于。

  1. sudo npm install -g永远

然后,安装forever-service.

  1. sudo npm install -g永远服务

使用创建服务forever-service:

  1. sudo forever-service install -s main.js -e "ROOT_URL=https://example.com/ MONGO_URL=mongodb://localhost:27017/rocketchat PORT=3000" rocketchat
  • The -s标志后跟main.js告诉永远服务我们的脚本被命名main.js, not app.js,这是默认值。
  • The -e flag followed by "ROOT_URL=https://example.com/ MONGO_URL=mongodb://localhost:27017/rocketchat PORT=3000" passes our environmental variables to forever-service.
  • 最后,rocketchat告诉永远服务如何命名该服务。

有关永久服务语法的更多详细信息,请运行forever-service --help.

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

  1. sudo开始火箭聊天

Rocket.Chat 现在应该位于您在步骤 2 中设置的 URL 上。确保您在此处使用 HTTPS。

Rocket.Chat 应该已准备就绪。在下一节中,我们将向 Rocket.Chat 添加第一个管理员用户并浏览界面。

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

访问我们之前设置的 Rocket.Chat 的 URL。你应该看到这样的东西:

Rocket.Chat's login page

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

Rocket.Chat registration

Click Submit,然后为您的新用户选择一个用户名:

Set a username for your new user

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

Rocket.Chat's homepage

就这样!你会在右边看到一个#general频道已为您创建。如果您点击它,您将被带到聊天室。随意玩一下。

The default #general chatroom

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

Create a new channel

随意命名:

enter image description here

现在点击Save,您就会被带到新频道。

要访问管理界面,请单击您的用户名旁边的小箭头。它将下拉一个菜单:

Using this menu, you can set your status, and access things like the Administration menu.

点击行政。它将弹出第二个菜单:

This is the Administration menu.

使用此菜单,我们可以配置和管理 Rocket.Chat 安装的各个方面。在里面Users部分,我们可以管理单个用户的权限,甚至邀请新用户。我们还可以使用以下命令向我们的安装添加更多功能集成 view.

结论

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ubuntu 14.04 上安装、配置和部署 Rocket.Chat 的相关文章

随机推荐

  • Linux 中的 Whoami 命令

    在本文中 我们将介绍whoami命令 顾名思义 whoami命令打印有效用户 ID 的用户名 换句话说 它显示当前登录用户的名称 如何使用whoami命令 语法为whoami命令如下 whoami OPTION 要显示当前登录用户的名称 请
  • 如何在 CentOS 8 上安装和配置 Redmine

    Redmine 是一款免费的开源项目管理和问题跟踪应用程序 它是跨平台和跨数据库的 构建在 Ruby on Rails 框架之上 Redmine包括对多个项目 wiki 问题跟踪系统 论坛 日历 电子邮件通知等的支持 本教程介绍如何在 Ce
  • Linux 中的 Stat 命令

    stat是一个命令行实用程序 显示有关给定文件或文件系统的详细信息 本文介绍了如何使用stat命令 使用stat命令 语法为stat命令如下 stat OPTION FILE stat接受一个或多个输入FILE名称并包含许多控制命令行为和输
  • 如何在 CentOS 8 上安装 Python 3.8

    Python 是世界上使用最广泛的编程语言之一 凭借其简单易学的语法 Python 成为初学者和经验丰富的开发人员的热门选择 Python 是一种非常通用的编程语言 它可用于构建各种应用程序 从简单的脚本到复杂的机器学习算法 CentOS
  • Linux 中的 Chgrp 命令(更改组)

    在 Linux 中 每个文件都与一个所有者和一个组相关联 并具有确定哪些用户可以读取 写入或执行该文件的权限 本文介绍了如何使用chgrp命令更改给定文件的组所有权 chgrp命令语法 The chgrp命令采用以下形式 chgrp OPT
  • 如何在 CentOS 7 上安装 Ruby

    Ruby 是当今最流行的语言之一 它具有优雅的语法 是 Ruby on Rails 框架背后的语言 本文展示了在 CentOS 上安装 Ruby 的几种不同方法 每种安装方法都有自己的优点 您可以选择最适合您的一种安装方法 先决条件 在开始
  • 如何每 5 分钟、10 分钟或 15 分钟运行一次 Cron 作业

    cron 作业是按指定时间间隔执行的任务 可以将任务安排为按分钟 小时 每月的某一天 每月 每周的某一天或这些的任意组合运行 Cron 作业通常用于自动化系统维护或管理 例如备份数据库或数据 使用最新的安全补丁更新系统 检查磁盘空间使用情况
  • Bash:追加到文件

    在 Bash 中 有多种方法可以将文本附加到文件中 本文解释了其中一些 要将文本附加到文件 您需要对其具有写入权限 否则 您将收到权限被拒绝的错误 使用重定向运算符附加到文件 gt gt 重定向允许您捕获命令的输出并将其作为输入发送到另一个
  • 在 C/C++ 中使用 INT_MAX 和 INT_MIN

    在本文中 我们将了解在 C C 中使用 INT MAX 和 INT MIN 这些实际上是有用的宏 它们表示最大和最小整数值 让我们用一些例子来看看它 使用 INT MAX 和 INT MIN INT MAX 是一个表示最大整数值的宏 同样
  • Google Guice 依赖注入示例教程

    谷歌指南是在应用程序中自动执行依赖项注入的框架 如果您直接遇到这里 我建议您查看一下依赖注入示例在这里我们了解了传统对象创建方法的问题以及依赖注入的实现优势 在上一篇教程中 我们学习了如何在应用程序中手动实现依赖注入 但是 当应用程序中的类
  • 如何在 CentOS 7 上安装 MySQL

    介绍 MySQL是一个开源数据库管理系统 通常作为流行的一部分安装LEMP Linux Nginx MySQL MariaDB PHP Python Perl 堆栈 它使用关系数据库和 SQL 结构化查询语言 来管理其数据 CentOS 7
  • 如何配置 DNS 循环负载平衡以实现高可用性

    介绍 尽管这是一种更有争议的技术 但利用提供商的全球影响力在地理上分发应用程序的一个好方法是使用和管理 DNS 响应 即返回的 IP 地址列表 除非您愿意在硬件和基础设施成本上花费一点钱 否则使用 DNS 来实现高可用性可能是一个很好的方法
  • 如何在 CentOS 7 上使用 FreeIPA 设置集中式 Linux 身份验证

    介绍 FreeIPA是 Linux 的开源安全解决方案 提供帐户管理和集中身份验证 类似于 Microsoft 的 Active Directory FreeIPA 构建在多个开源项目之上 包括 389 Directory Server M
  • Spring Boot 教程

    欢迎来到 Spring Boot 教程 春季启动是 Pivotal Team The Spring Team 的一个全新项目 它是在现有 Spring 框架之上开发的框架 Spring Boot 教程 Spring Boot使用全新的开发模
  • 如何使用 Whisper 和 Spleeter AI 工具制作卡拉 OK 视频

    介绍 人工智能工具可用于处理图像 音频或视频以产生新颖的结果 直到最近 在不使用大量时间和计算能力的情况下 自动编辑图像或音频仍然具有挑战性 即使如此 通常也只能运行交钥匙滤波器来删除声音中的某些频率或更改图像的调色板 较新的方法使用人工智
  • JSF PrimeFaces 教程

    欢迎来到 JSF Primefaces 教程 JavaServer Faces是当今用于实现 Java Web 应用程序用户界面的领先框架之一 JSF 已经组件化了 Web 应用程序 特别是与界面相关的部分 因为 JSF 中的所有单一视图都
  • 如何在 Ubuntu 14.04 服务器上使用 Nginx 安装和保护 phpMyAdmin

    介绍 很大一部分网站和应用程序都需要 MySQL 等关系数据库管理系统 然而 并非所有用户都愿意从命令行管理数据 为了解决这个问题 创建了一个名为 phpMyAdmin 的项目 以提供基于 Web 的管理界面形式的替代方案 在本指南中 我们
  • 如何保护您的服务器免受 POODLE SSLv3 漏洞的影响

    介绍 2014年10月14日 SSL加密协议第3版中的漏洞被披露 该漏洞被称为 POODLE Padding Oracle On Downgraded Legacy Encryption 允许攻击者使用中间人攻击以纯文本形式读取使用此版本协
  • 如何配置 vsftpd 在 CentOS VPS 上使用 SSL/TLS

    介绍 Warning FTP 不安全 考虑使用 SFTP 代替 FTP FTP 即文件传输协议 是一种在本地和远程服务器之间传输文件的方式 尽管这种文件传输方法非常流行且无处不在 但由于其设计缺乏固有的安全性 它已经不再受欢迎 如上所述 S
  • 如何在 Ubuntu 14.04 上安装、配置和部署 Rocket.Chat

    介绍 火箭聊天是一个用 Meteor 构建的开源消息传递应用程序 它支持视频会议 文件共享 语音消息 拥有功能齐全的 API 等等 Rocket Chat 对于那些喜欢完全控制自己的通信的人来说非常有用 在本教程中 我们将在新的 Ubunt