搭建自己的真正聊天室 – RockerChat 安装教程

2024年,飞行爱好者美利坚聚会,前美国环球航空的B747-200停靠在展位上,男人正在面前自拍。

我们现在所使用的通信软件一般都是大厂级别,拥有庞大的用户群体,但同时也是隐私缺失的重点灾难区。例如俄罗斯著名即时通讯软件 Telegram 的创始人 – 帕维尔·杜罗夫于2024年8月24日晚在巴黎戴高乐国际机场被捕,被指控为:未能管理 Telegram 内容。犯罪活动可以在该平台上不受阻碍地发起和继续。据媒体报道,目前还在进行调查,以确定他是否因与执法机构合作不力而参与贩毒、诈骗和虐待儿童等犯罪行为。

法兰西警署插手 Telegram 后台,已是众所周知的事情,但更加众所周知的是,我们使用的 QQ、Wechat 一般也是受公安部网信部所‘监督’,顾名思义,昨天刚看了聊天记录,今天那个群秒速解散且同时您家即将收到了来自公安部的查水表行动。

浑浑噩噩之下,创建自己的即时通讯系统是为重点项目,本次教程通过教导各位以两个方法来安装RockerChat,并正确配置系统设置。
在RockerChat上面提供了以在线方式各种软件基础上的安装,如:人人皆知的、好用的Docker容器方法,AWS忠实用户必选的AWS EC2部署方法。我们将会编写如何使用在线docker安装和离线docker安装这两个方法来为各位挑选使用。链接指向
不建议使用Linux系统实装方法,因为他的教程已经是三年前了,对于现在的Linux系统可能不适配。为避开不必要的麻烦,故而推荐采用全新的自适应的Docker安装方法。

Docker方式安装RockerChat可以选择在线版离线版,请选择适合自己的服务器环境的情况下使用其中一个方法,事半功倍。


一、在线安装RocketChat

此方法最推荐!

一般我们的VPS或者独立服务器都可以直接双向通信,公网用户可以访问本服务器上的任何网络服务, 同时内网用户可以访问公网的海量网络服务。如此也可适用于常规方法安装新服务的。如果您的服务器受特殊管制,则可以查看下一个方法(点击跳转)。

1. Linux版安装
如果您使用为Windows版,请到

1.1 本次教程使用 Ubuntu,CentOS请自行更换相关程序的指令执行下列的代码。在 Ubuntu 上面更新软件源数据以匹配最新版。

1.2 在您的 Ubuntu 上,安装 Apache / Nginx 等Web服务器软件,用于反向代理作用。

使用面板方式安装,轻松又好用。不过面板上面通常是旧式稳定版,如果使用最新版的话请Google一下如何手搓建站三大件(Apache/Nginx、PHP、MySQL)。不建议使用公测版否则会有服务器运行不稳定的风险!

此 docker 安装方法提供两种:Docker DesktopDocker Compose 。前者只适用于带有GNOME桌面的Ubuntu,后者命令行和桌面版皆可适用。

1.3 Docker 安装( Docker Desktop 版):

参考来源:在 Linux 上安装 Docker Desktop

1.3.1 先决条件:

一般您选择安装非server版本的时候,会默认安装Gnome桌面的。不建议server版本强制安装gnome!最好选择高性能VPS以支持非 server 版 Ubuntu 使用。

Ubuntu.com

1.3.2 设置安装所需的 apt 存储库:

1.3.3 下载 Docker Desktop 安装包并上传至您的服务器上的 root 目录:

下载来源:Docker Desktop 发行说明

请下载此(最新)版本:docker-desktop-amd64.deb

目前最新版本:4.41.2

将下载的deb软件包上传到服务器上。

1.3.4 在您的服务器上安装 Docker Desktop

登录SSH后,进入上传目录,在此目录下使用管理员权限来执行以下操作:

如果弹出以下结果,则请忽略,这是因为:安装过程结束时, apt 由于无法以目前用户权限下载软件包而显示错误。您可以忽略此错误消息。

Docker 备注:

1.3.5 启用 Docker Desktop :

或者打开 终端 ,输入以下命令即可命令行启动 Docker Desktop:

要查看docker所有组件的版本情况,输入以下命令即可查看:

1.3.6 设置 Docker 自启动:

或者,打开终端并运行:

1.3.7 退出 Docker 服务:

要停止 Docker Desktop,请选择 Docker 菜单图标以打开 Docker 菜单,然后选择退出 Docker Desktop。

或者,打开终端并运行:



1.4 Docker 安装( Docker Compose 版):

参考来源:在 Ubuntu 上安装 Docker 引擎 | Docker Compose 安装概述

此版是为 Server 版本的 Ubuntu 适用,因为 Docker Desktop 需要桌面软件(GNOME等),Server 版本是为轻量化而去掉 GNOME 这类桌面软件,同时默认安装 SSH Server 服务以供 SSH 连接。如果您强制在 Server 上面安装 GNOME,可能会导致系统不稳定,故不推荐强制安装桌面软件以匹配 Docker Desktop,这样的类似于是捡了芝麻丢西瓜,得不偿失。

1.4.1 先决条件

1. 防火墙限制

如果您使用 ufw 或 firewalld 管理防火墙设置,请注意,当您使用 Docker 公开容器端口时,这些端口会绕过防火墙规则。有关更多信息,请参阅 Docker 和 ufw
Docker 仅与 iptables-nft 和 iptables-legacy 兼容。安装了 Docker 的系统不支持使用 nft 创建的防火墙规则。请确保您使用的任何防火墙规则集都是使用或创建的 iptables 或 ip6tables,,并且已将它们添加到 DOCKER-USER 规则链中,请参阅数据包过滤和防火墙

2. 操作系统要求

要安装 Docker Engine,您需要以下 Ubuntu 版本之一的 64 位版本:

  • Ubuntu Oracular 24.10
  • Ubuntu Noble 24.04(LTS)
  • Ubuntu Jammy 22.04(LTS)

Ubuntu 的 Docker Engine 与 x86_64(或 amd64)、armhf、arm64、s390x 和 ppc64le(ppc64el)架构兼容。

3. 卸载旧版本
在安装 Docker Engine 之前,您需要卸载所有冲突的软件包。

您的 Linux 发行版可能提供了非官方的 Docker 软件包,这些软件包可能与 Docker 官方提供的软件包冲突。您必须在安装 Docker Engine 正式版之前卸载这些软件包。

要卸载的非官方软件包是:

  • docker.io
  • docker-compose
  • docker-compose-v2
  • docker-doc
  • podman-docker


此外,Docker Engine 依赖于 containerd 和 runc 。Docker Engine 将这些依赖项捆绑为一个捆绑包:containerd.io。如果您之前安装了 containerd 或 runc ,请卸载它们以避免与 Docker Engine 捆绑的版本冲突。

运行以下命令卸载所有冲突的软件包:

apt-get 可能会报告您没有安装这些软件包。

卸载 Docker 时,存储在 Docker 中的镜像、容器、卷和网络 /var/lib/docker/ 不会自动删除。如果您想从全新安装开始,并希望清理所有现有数据,请阅读“卸载 Docker Engine”部分。


1.4.2 安装 Docker :

要安装 Docker Compose,需要先安装 Docker Engine。

您可以根据需要以不同的方式安装 Docker Engine:

第一条不建议使用,因为是跟Docker Desktop有关,没必要再说吧。

本次我们将使用第二条,次要的安装方法:

1.设置 apt 存储库:

打开终端,输入以下内容:

2.安装 Docker:

2.1 最新版(一键安装):

2.2 选择具体版本(适合部分软件的指定限制版本):

选择所需版本并安装:

3.测试 Docker:

通过运行 hello-world 镜像验证安装是否成功:

1.4.3 设置 Docker 自启动:

打开终端,输入以下内容即可激活:



1.5 设置 当前用户添加进 Docker 组以使用 Docker 命令:

1.检查当前用户组:

2.添加用户进入 Docker 组:


1.6 获取 Compose 文件

1. 进入您想要安装RocketChat的目录,例如:/www/Chat

临时将其目录下的权限设置为 777:

命令行 示例
桌面 示例

2. 在此处新建一个 compose.yml 文件:

创建之后请先 :wq 以保存文件:

你可以看到此目录下的新建的文件:

然后请打开Rocket.Chat for github 上的 Docker official image里面的compose.yml示范文件,复制其代码到此新建文件中:

:wq 以保存文件。

或者

在此处目录打开终端:

输入此命令以下载示范文件到此目录:


1.7 创建 .env 文件:

RocketChat 说明:
为了保持配置整洁,请避免 compose.yml 直接编辑文件。相反,请使用 .env 文件来定义环境变量,这样可以更轻松地修改部署配置,而无需编辑 compose.yml 文件。

1. 在此目录新建 .env 文件:

2. 从Rocket.Chat for github 上的 Docker official image上的 .env 示范文件上复制并粘贴到此文件中:

:wq 以保存文件。

3. 修改 .env 文件里面的变量:

  • 将 RELEASE 变量设置为您想要的 Rocket.Chat 版本。如:RELEASE=7.5.1。RocketChat 建议不用 latest 版本,详细可参阅 releases pageavailable docker images
  • 如果您要部署带有域的生产工作区,请 .env 使用以下详细信息更新您的文件:
  • ### ROOT_URL:指定工作区的预期 URL。例如,http://<your-domain>
  • ### HOST_PORT:将其设置为80。确认端口上没有其他服务正在运行,80并且防火墙允许此端口上的流量。
  • ### 如果您要在本地主机上部署测试工作区,请跳过此步骤。
  • ### 如果您计划为工作区域启用 HTTPS,请跳过此处的设置并继续通过 Enable HTTPS for Docker 来启动 Rocket.Chat 容器。
  • 如果你收到了 registration token ,您可以从我们的销售团队或 Rocket.Chat Cloud 使用它来自动注册您的工作区。为此,请将令牌添加到 .env 文件中,如下所示:
  • ### REG_TOKEN=your_token_here
  • ### 注:将注册令牌添加到.env文件是可选的。您还可以注册您的工作区during configuration部署后。
  • ### 注册完成后(服务器启动时确认),令牌将不再需要。如果存储在.env文件中,则可以将其移除,因为注册信息存储在数据库云设置中。
  • 如果您使用现有的 MongoDB 安装(例如 MongoDB Atlas)作为数据库提供程序,请 MONGO_URL 按照以下格式将变量的值编辑为连接字符串:
  • ### MONGO_URL=mongodb://:@host1:27017,host2:27017,host3:27017/?replicaSet=&ssl=true&authSource=admin

下列是本服务的 .env 的示例:


1.8 RocketChat,启动!

保存 .env 文件之后,在您的终端上输入如下命令以启动:

此命令将:

  • 启动名为 mongodb 的 MongoDB 服务。
  • 启动一个服务 rocketchat ,它也将等待 mongodb 准备就绪。

以上是启动 Rocker Chat 容器和 mongodb 容器启动过程。

如果在部署过程中遇到问题,请参考以下资源进行日志记录和故障排除:

当完全启动之后,请通过在游览器上输入 http://localhost:3000 即可访问您的 RockerChat !如果你之前设置了域名访问,则可以通过指定的 ROOT_URL 访问您的 RockerChat 。

接下来是设置管理员之类的配置,通过观看设置您的工作区以方便设置。

至此属于您的 RocketChat 搭建完毕!

记得把 RocketChat 配置文件所在目录的权限改回来:

下面是管理 Rocker.chat 的相关知识:

  • User Guides:了解 Rocket.Chat 帐户的基础知识、房间类型以及如何与工作区用户进行交流。
  • Workspace Administration:管理员和所有者可以设置和管理各种配置。
  • Marketplace:探索可用的应用程序来增强您的工作空间。


中国云南航空 767-300 旧照

1.9 附加功能:

1.9.1 Rocket Chat 开启 HTTPS 访问:

参考来源:为您的 Rocket.Chat 工作区启用 HTTPS

1.使用 RocketChat 推荐的 Traefik 进行反向代理:

注:在继续之前,请确认已为转到服务器 IP 的域设置了正确的 A 记录(可选 CNAME 记录)。

1.1 更新文件中的以下变量 .env 。如果没有,请按照our example以下方式创建 .env 文件。

  1. LETSENCRYPT_EMAIL:TLS 证书所需的电子邮件地址。
  2. DOMAIN:仅限您的域名或子域名。避免添加 https:// 或任何尾部斜杠。确认此域名解析为服务器 IP 地址。
  3. RELEASE:您首选的 Rocket.Chat 版本。这里是你安装的rocketchat版本。
  4. ROOT_URL:将值设置为“ https://your-domain.com ”,将“ your-domain.com ”替换为您要使用的域名。
  5. BIND_IP:设置为 127.0.0.1 。

保存并退出。

1.2 在您目录下运行此命令以下载 traefik 模板文件:

1.3 重启正在运行的 RocketChat 容器

1.4 启动 traefik:

等待 TLS 证书生成并重启 Rocket.Chat。然后,使用您配置的实际域名(https://your-domain.com),安全地访问您的 Rocket.Chat 工作区。


2.使用 Nginx 进行反向代理:

通过使用 Let’s Encrypt 的 TLS/SSL 证书配置 Nginx 来保护您的 Rocket.Chat 工作区。请按照以下步骤完成配置:

2.1 从 Let’s Encrypt 获取 SSL 证书:

使用适用于你的 Linux 版本的软件包管理器进行安装 certbot 。对于基于 Debian 的发行版(例如 Debian 和 Ubuntu),请使用:

对于基于 RPM 的发行版(例如 Redhat 和 Centos),请使用: (RocketChat乱写,特意展示出来他的错误)

通过运行此命令从 Let’s Encrypt 获取证书(第二个或更多域是可选的):

2.2 使用 TLS/SSL 配置 Nginx Web 服务器:

注:Rocket.Chat 通常默认设置为在该 3000 端口上运行。但是,您可以使用 Nginx 作为反向代理,以便用户更轻松地访问它。这会将您的域名链接到在该端口上运行的 Rocket.Chat 服务器。这样,您的用户就可以通过您的域名访问您的工作区,而无需直接使用 URL 中的端口。

安装 Nginx Web 服务器:

备份默认配置文件以供参考:(可选)

为 Rocket.Chat 创建一个新的站点配置:

将以下内容粘贴到新文件中:

:wq 以保存文件。

测试 Nginx 配置以确保没有语法错误:

如果语法测试成功,则重启Nginx:

注:如果您有安全组限制,请允许当前 IP 使用 TCP/22 进行 SSH 连接,并允许计划用于访问的 IP 使用 TCP/443 进行连接。

打开 Web 浏览器并访问 https://your-domain.com (您配置的实际域名)安全地访问您的 Rocket.Chat 工作区。



绝地潜兵版略微失重感~ | 我让你起飞!
1992年,邓小平同志视察深圳经济特区。(原宝安县深圳镇,今广东省深圳市)

3. 使用 Apache 进行反向代理:(本人目前使用的)

3.1 从 Let’s Encrypt 获取 SSL 证书:

使用适用于你的 Linux 版本的软件包管理器进行安装 certbot 。对于基于 Debian 的发行版(例如 Debian 和 Ubuntu),请使用:

通过运行此命令从 Let’s Encrypt 获取证书(第二个或更多域是可选的):

3.2 使用 Apache 反向代理 RocketChat 并配置 SSL/TLS :

安装 Apache Web 服务器:

验证 Apache 服务运行情况:

Apache 自启动设置:

Apache,启动!


配置 Apache 模块:

配置模块有两种方法,一个是修改 httpd.conf 以开启模块,一个是直接输入命令开启,本人建议使用前者。

1. 修改 httpd.conf :

进入 Apache 的安装目录,通常是:/etc/apache2/ 下,有如下文件目录:

这里我用XP面板的Apache的目录,Apache在不同的安装方式后都是如上所示的目录。

进入 conf 文件夹,显示如下:

我们要进入 httpd.conf 进行修改,以便开启配置:

在这里,我们需要开启如下模块:

开启方法:在需要开启的模块名的开头上,去掉“ # ”即可。

: wq 以保存文件。

保存之后,请重启 Apache 服务:

2. 命令开启:

打开终端,进入 Apache 安装目录,例:/etc/apache2/

输入如下命令:

输入完毕之后请重启 Apache 服务:


设置 httpd.conf :

Apache可以让您自由选择您的网站运行目录,不需要在 /etc/apache2/sites-available 下创建网站目录,可以在根目录下创建一个文件夹 (“www”)来存放您的网站运行执行文件(“httpd.conf”),例如:/www/conf 。
强烈不建议直接在根目录下创建 httpd.conf !!!
要想让您轻松在统一的文件夹下配置以及修改网站运行配置文件,您可以到此处,其 httpd.conf 配置是一样的。

默认目录:(建议请看自定义目录的配置,这里是只供默认参考,不推荐采用)

进入到 /etc/apache2/sites-available/ 下,这里一般是您的网站运行配置文件的存放地。

新建一个 example.com.conf 文件,用以反向代理 RocketChat 所用,其名称随意,示例:chat.123.com.conf

忽略目录,在默认目录下这些 conf 应当是这样的。

使用 vim 打开此新建 conf 后,按照默认配置(默认的 conf 位于:“Apache安装目录”/conf/extra/httpd-default.conf )添加如下内容,其中的 domain.com 和 本地IP+端口 请自行修改:

:wq 以保存文件。

在同样的目录下创建专用于HTTPS的配置文件:chat.123.com-ssl.conf,内容配置在如下此处

为了方便管理,您可以在同一 conf 下配置HTTPS内容,要做到此步骤,您需要在 “Apache安装目录”/conf 下的 httpd.conf 里面,注释如下内容:

然后再次打开 chat.123.com.conf ,在80端口下面直接新增443端口相关配置:

:wq 以保存文件。

设置好之后,请重启 Apache 服务以生效。

自定义目录:

要想让 Apache 在您所选的目录下进行读取配置文件以运行网站,您需要在 “Apache安装目录”/conf 下打开 httpd.conf 。

在 httpd.conf 的末尾处添加如下内容:

:wq 以保存文件,然后请重启 Apache 服务。

然后到您所创建的目录下,新建 chat.xxx.com.conf 文件,名称随意,例:chat.123.com.conf:

在打开的 conf 中,请按照以下示例内容,根据自身的情况进行修改相关内容:

修改完成后请输入 :wq 以保存文件,然后再次重启 Apache 服务。

至此,Apache 配置 HTTPS 访问设置步骤已经结束。

3.3 HTTPS访问测试:

打开您所选的域名,例如:https://chat.123.com,如果如下图示则表示配置成功:


越写越红温,属于是了。他妈的!


4. 使用 IIS (互联网信息服务)进行反向代理:

此方法适合 Windows 版安装教程,建议与此教程搭配使用,当然您可以用来反向代理 Linux ,只不过要从 localhost 改为您的服务器的IP。互联网信息服务(Internet Information Services)的可视化界面使得配置反向代理更加简单,反正上面的命令行配置简直乱得发疯。

4.1 安装 IIS 及 反代模块

IIS 安装教程在此处:点击以查看

4.2 反向代理基础设置:(这里是 Linux 版,Windows 版请到此处

4.2.1 设置ARR,进入 IIS 管理器上的服务器总项:

4.2.2 选择 IIS 下的“Application Request Routing”

4.2.3 打开,在此界面选择“Server Proxy Settings…”

4.2.4 进入之后,在此界面上勾选“Enable proxy”,并点击“Apply(应用)”

4.3 设置 RocketChat 反向代理

4.3.1 新建空网站,名称随意,例如:chat

4.3.2 打开 URL 重写,点击“添加规则”:

4.3.3 点击“反向代理”:

4.3.4 在“入站规则”处,输入 RocketChat 服务器的IP地址 + “:3000” :(例如:10.0.0.6:3000)

4.3.5 确定保存之后,打开刚才添加的规则,在“操作”下面检查是否与下图一致,不一致就修改他们,再点“应用”。
(IP地址为您的 RocketChat 服务器的IP地址)

4.3.6 重启 IIS,打开游览器,输入http://chat.123.com,检查web服务运行状态

4.4 设置 SSL 证书:

教程在此处:点击以查看

设置完成之后,打开游览器并输入https://chat.123.com,查看证书生效状态


至此 Linux 版安装教程到此结束了,下一个就是 Windows 版安装教程,Linux 版的用户可以自由地在RocketChat上面发表言论。实现 ylzy ~


2. Windows版安装(Linux版回退处

2.1 先决条件:

开始之前,请确保您已具备以下条件:

  • Windows 计算机上至少有 4 GB 内存
  • 至少 20 GB 磁盘空间,最好是 SSD
  • 您的系统已安装最新的 Windows 更新
  • 下载并安装Docker for Windows
  • 启用 Hyper-V(需要重新启动) #查看Docker desktop virtualization启用 Hyper-V。

2.2 安装 RocketChat:

2.2.1 选择一个需要放置 RocketChat 配置文件的位置,例如:E:/www/chat 。

2.2.2 在此目录下创建一个 docker-compose.yml。

2.2.3 打开此文件,从Docker.Official.Image / compose.yml上复制默认文件到此。

2.2.4 打开 命令提示符(cmd),进入那个目录,执行以下命令以创建容器:

输入后,请等待几分钟让docker完全初始化容器,打开游览器并输入 http://localhost:3000 以访问 RocketChat。

2.2.5 设置反向代理

反向代理用到的 web 服务器有很多,首选 IIS,其次 Caddy,可查看:为工作区设置 HTTPS

下面以 IIS 为例子:

1. 设置ARR,进入 IIS 管理器上的服务器总项:

2. 选择 IIS 下的“Application Request Routing”

3. 打开,在此界面选择“Server Proxy Settings…”

4. 进入之后,在此界面上勾选“Enable proxy”,并点击“Apply(应用)”

5. 新建空网站,名称随意,例如:chat

6. 打开 URL 重写,点击“添加规则”:

7. 点击“反向代理”:

8. 在“入站规则”处,输入 RocketChat 服务器的IP地址 + “:3000” :(例如:127.0.0.1:3000)

9. 确定保存之后,打开刚才添加的规则,在“操作”下面检查是否与下图一致,不一致就修改他们,再点“应用”。
(IP地址为您的 RocketChat 服务器的IP地址)

10. 重启 IIS,打开游览器,输入http://chat.123.com,检查web服务运行状态

11. 设置 SSL 证书:

教程在此处:点击以查看

设置完成之后,打开游览器并输入https://chat.123.com,查看证书生效状态

Windows 版教程到此结束~



二、离线安装RocketChat

此方法适用于位于内网环境的隔离服务器上,顾名思义就是这个隔离服务器是与外网无法连接的情况下,安装这个 RocketChat 以供内网环境下人员交流所用,而且也可以适用于您的服务器在部分情况(如:部分主机提供商的外网访问收费,不然禁止使用外网;您的服务器在特殊情况下需要与外部网络切断的;等等。)下导致无法访问互联网,也就是不能按照第一个方法:在线安装RocketChat(跳转)来轻松安装 RocketChat 了,这就需要这个方法来进行在无因特网访问权限(无 Internet 访问权限)的情况下安装完整的 RocketChat 。

此方法亦可适用于我之前的奇葩网络状况,参考此处,顾名思义就是因为 iptables 设置原因,导致虚拟机无法访问互联网,但是可以在外网访问本服务器上的各种服务。所以并不是故障而是一种主机提供商的奸商手段:要想访问互联网,须先收费吧,不然不给你机子访问互联网。

此方法目前使用 Linux 版,Windows 版待开发,后续会另开新文章来发布 Windows 版 离线安装教程。


1.1 先决设置:

要想使用此方法,您需要两台搭载 Linux 系统的VPS或虚拟机。如果你只有一台VPS,可使用LXC容器虚拟机软件来开始搭建两台VM,个人建议是全新安装 PVE ,这样管理虚拟机方便多了。有预算的可以购买两台VPS来分别搭建,更高级的直接两台独立服务器,这样不用担心性能受限,奔腾似火!

需要这两台虚拟机的作用是:一台作为私有 Docker 存储,作为离线证书验证和离线 Docker 下载;一台作为 RocketChat 服务器。如果是VPS的话需要内部地址,这应该在您的VPS配置页面上会有的,使用内部地址可以在主机提供商上的虚拟交换机上通信而不用外部网络通信;虚拟机的话请保证两台虚拟机是同一网段下(例:用于 RocketChat 服务器是 10.0.0.5 / 用于私有 Docker 存储服务器是 10.0.0.6 ),保证内部通信畅通无阻。

条件:

  • 一台可以访问互联网以下载 Docker 镜像的服务器。
  • 或者:用于托管私人注册表的服务器临时开放端口以下载 Docker 镜像。
  • 或者:在自己的主机上下载 Docker 镜像,用 FTP 传输到托管私人注册表的服务器上。
  • 两个隔离服务器(一个用于托管私人注册表,一个用于安装 Rocket.Chat)。
  • 确保 Docker 在三台服务器上安装并可运行。
  • 确保您有一种方法可以将文件从具有互联网访问权限的服务器传输到隔离服务器,例如 USB 驱动器(非必要,因为 Hetzner 对 USB 存储器收费!),内网传输,FTP传输,临时开放互联网以下载。

拓扑图:

1.2 在用于托管私人注册表的服务器上面 创建私有注册表:

由于该服务器可能无法访问互联网,则就无法从 Docker Hub 或者 任何公共镜像仓库下载镜像。因此,您可能需要在有访问互联网权限的主机上下载特定的镜像,并将其传输到那个服务器上面。

1. 在可以访问互联网的已安装 Docker 的 Linux 主机上,使用下列命令拉取用于创建注册表的镜像:

2. 检查镜像下载情况:

3. 创建 .tar 注册表映像文件:

4. 如果您的互联网访问服务器和隔离服务器无法通信且不在同一个网络上,请将下载的.tar文件复制到 USB 驱动器,然后使用 USB 驱动器将其传输到隔离服务器。

或者,如果两台服务器可以相互通信,则可以使用以下命令将 .tar 文件传输到隔离的注册中心主机服务器:

注意:

使用适当的值更新以下内容:

  • key:访问应发送文件的注册主机服务器的密钥。
  • registry_tar_file_path:registry_image.tar文件路径。
  • user_name@target_ip_address:应发送文件的注册主机服务器的用户名和 IP 地址。
  • destination_path:文件在注册主机服务器上的目录路径。

例如,scp -i firstServer.pem registry_image.tar [email protected]:/home/ubuntu

或者,如果两台服务器可以通信,也可以使用 FTP 传输到隔离的注册中心主机服务器。(建议)

5. 在 用于托管私人注册表 的服务器上面,运行下列命令以检查并确认尚未加载 registry 镜像或容器:

6. 进入您上传 .tar 文件所在的目录路径下,运行下列命令以检查传输情况:

7. 要在上面加载 .tar 文件,在此目录下运行下列命令:

8. 运行下列命令以检查加载情况:

9. 启用此注册表容器,请运行下列命令:

注意:

  • 不强制在端口 5000 上运行容器。建议的端口只是一个示例,可以根据您的具体要求进行更新。
  • private-registry 可使用您喜欢的注册表容器名称进行更新。
  • 对于生产环境,通过在主机上指定本地文件夹进行存储或实施其他合适的持久性机制来确保图像的持久性。

10. 运行下列命令以查看容器运行情况:

现在您可以在此上面存储 Rocket.Chat 和 MongoDB 镜像了。

1.3 将 Rocket.Chat 和 MongoDB 镜像传输到注册表托管服务器上

与 1.2 一样,选择刚才的传输方法,按照下面步骤进行存储过程:

1. 返回到刚才的有互联网访问的主机 在您的注册表服务器(临时开通外网访问)里面,执行下列命令以拉取这两个镜像:

其中的 latest 可以由您自定义版本,但是注意的是,由于 rocket.chat 对 mongodb 的版本限制,您可以去看此:https://github.com/RocketChat/Rocket.Chat/releases,来决定该使用适合的 mongodb 版本,而 rocket.chat 同样也是。
Docker 上的 RocketChat 版本选择处:https://hub.docker.com/_/rocket.chat/tags
Docker 上的 mongodb 版本选择处:https://hub.docker.com/r/bitnami/mongodb
具体选择的版本可查看 Tags 处下面,点击选定的版本右边的 Copy 至终端上以下载特定版本镜像。

示例(推荐):

或者在您的主机上用 docker 执行上列命令,然后将下载的镜像打包,用 FTP 传输到注册表托管服务器上,再运行下列命令上载镜像:

2. 运行下列命令检查镜像下载情况:

3. 运行下列命令以更改 Rocket.Chat 和 MongoDB 镜像的标记:

注意:

  • <registry_ip_address:5000>
    如果您的注册表容器未在端口 5000 上运行,请使用注册表主机服务器的 IP 地址和相应的端口号进行更新。
    示例 127.0.0.1:5000 或 10.0.0.6:5000 ,前者是只在一个服务器下配置,后者是两个服务器的配置。
  • latest 替换为 你选择的版本号,最好是写已经在您的服务器上面的那两个镜像的版本号。

示例:

4. 执行下列命令可以查看新标记的镜像:

5. 因为是两个服务器之间的通信协议是为 HTTP,内部通信并不需要证书,因此请修改注册表服务器上面的 docker 守护程序文件以支持 HTTP 通信。因为他们是默认 HTTPS 安全通信的:

在 json 文件里面加入以下内容:

注:”<registry_ip_address>:5000″ 与第 3 步的设置的一致。

示例:

6. 运行下列命令以重启 Docker:

7. 运行以下命令将标记的镜像推送到隔离服务器上的注册表:

示例:

8. 为了确认镜像是否成功推送,请运行以下命令在 registry 容器内打开一个交互式 shell:

注:private-registry,如果注册表容器的名称不同,请替换为您所设置的名称。

9. 运行下列命令来查看注册表中的 docker 镜像:

确认 MongoDB 和 Rocket.Chat 镜像存在于注册表中,并且您已准备好从具有注册表的隔离服务器安装 Rocket.Chat。

注:您可能只会看到图片路径的名字。例如:docker.io 而不是 /docker.io/bitnami/mongodb

1.4 下载并传输 Rocket.Chat 文件:

我们将下载必要的文件并将其传输到您要安装 Rocket.Chat 的隔离服务器。请按以下步骤操作:

1. 在可访问互联网的主机上下载 compose.yml 和 .env 模板文件,请运行以下命令:

2. compose.yml 不建议直接编辑该文件中的配置,建议在 .env 文件中设置环境变量。修改该 .env 文件时需要注意以下几点:

  • 将文件名更改为.env。
  • 取消注释您正在更新的变量。
  • 将变量设置RELEASE为您想要的 Rocket.Chat 版本。请参阅我们的releases pageavailable docker images。不建议保留默认版本(latest)。
  • 如果您正在部署生产工作区,请从 ROOT_URL 上默认值进行编辑 ,以匹配您的域名或 IP 地址,例如: http://localhost:3000 。
  • 根据 RocketChat上的版本 releases 来修改此 MONGODB_VERSION 值,例如:MONGODB_VERSION=7.0.15。
  • .env文件中的值应如下所示:
    RELEASE=7.6.1
    ROOT_URL=https://localhost:3000
    MONGO_VERSION=7.0.15
  • 如果您有注册令牌来自动注册工作区,您可以像这样添加它:REG_TOKEN={your token here}
  • 进行必要的更改后保存.env文件并按照后续步骤操作。

3. 如果您的联网服务器和隔离服务器无法通信,并且不在同一网络,请将下载的文件复制到 U 盘。然后使用 U 盘将文件传输到您将安装 Rocket.Chat 的隔离服务器。
或者,如果两台服务器可以相互通信,您可以使用以下命令将下载的文件传输到隔离服务器:

使用适当的值更新以下内容:

  • key:访问应发送文件的隔离服务器的密钥。
  • compose_file_pathcompose.yml文件路径。
  • env_file_path.env文件路径。
  • user_name@target_ip_address:应发送文件的隔离服务器的用户名和 IP 地址。
  • destination_path:您想要保存文件的隔离服务器上的目录路径。

例如,scp -i firstServer.pem rocketchat.tar [email protected]:/home/ubuntu

或者,如果两台服务器可以通信并开放了 FTP 端口,也可以使用 FTP 传输到隔离的注册中心主机服务器上。(建议)


中场休息!

海南省航空公司的 B737-300 在成都双流国际机场(ZUUU / CTU)

1.5 安装 Rocket.Chat:

Rocket.Chat 和 MongoDB 镜像已推送到包含 registry 的隔离服务器,下一步是在第二台隔离服务器上安装 Rocket.Chat。您需要使用包含 registry 的隔离服务器中的镜像以及我们上一步传输的文件来部署 Rocket.Chat。请按照以下步骤操作:

1. 运行以下命令确认 Rocket.Chat 服务器上没有运行 Rocket.Chat 和 MongoDB 镜像:

2. 要使用 HTTP 在服务器和注册表之间进行通信,请修改 docker 守护程序文件以允许与不安全的注册表进行通信,运行下列命令以打开守护程序文件:

3. 输入以下内容,保存并退出:

注意:<registry_ip_address:5000> 如果您的注册表容器未在端口 5000 上运行,请使用注册表主机服务器的 IP 地址和相应的端口号进行更新,例如:10.0.0.6:5000 。

示例:

4. 重启 Docker:

5. 检查一下 .env 文件里面的 ROOT_URL 值,修改此值以匹配您的服务器的 URL 或域名。例如:

6. 在 compose.yml 文件里面修改 Rocket.Chat 和 MongoDB 的镜像路径,使其引用注册表托管服务器中镜像仓库中的镜像。例如:

注:<registry_ip_address:5000> 如果您的注册表容器未在端口 5000 上运行,请使用注册表主机服务器的 IP 地址和相应的端口号进行更新。

示例:

7. 通过执行以下命令安装 Rocket.Chat:

8. 运行以下命令来确认 RocketChat 和 MongoDB 镜像存在并且其容器正在主动运行:

9. 要查看 Rocket.Chat 容器的日志/状态,请执行以下命令:

它还显示您的站点 URL,您可以使用它来访问您的工作区。

现在,您已成功在隔离环境中部署 Rocket.Chat。Log into your workspace使用您的站点 URL,第一个登录的用户将成为工作区管理员。


1.6 设置反向代理:

可选的有:Traefik | Nginx | Apache | IIS 。根据您的服务器本身情况来选择相应的配置。

1.7 后续步骤

成功部署隔离工作区后,您必须注册该工作区。请按照Air-Gapped Workspace Registration document。此后,您需要应用workspace license。然后,您就可以开始使用您的工作区了!您可以参考additional configurationsapp installation隔离工作空间的详细信息。

要了解有关工作区的更多信息,您可以参考以下内容:

  • User Guides:了解 Rocket.Chat 帐户的基础知识、房间类型以及如何与工作区用户进行交流。
  • Workspace Administration:管理员和所有者可以设置和管理各种配置。

RocketChat 安装教程全部到此结束了,这是一个非常有经验的长篇大论,细细观看吧~



草你妈,终于写完了!

逼文章,谁写谁傻逼。

萝卜:难蚌。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部