

我们现在所使用的通信软件一般都是大厂级别,拥有庞大的用户群体,但同时也是隐私缺失的重点灾难区。例如俄罗斯著名即时通讯软件 Telegram 的创始人 – 帕维尔·杜罗夫于2024年8月24日晚在巴黎戴高乐国际机场被捕,被指控为:未能管理 Telegram 内容。犯罪活动可以在该平台上不受阻碍地发起和继续。据媒体报道,目前还在进行调查,以确定他是否因与执法机构合作不力而参与贩毒、诈骗和虐待儿童等犯罪行为。
法兰西警署插手 Telegram 后台,已是众所周知的事情,但更加众所周知的是,我们使用的 QQ、Wechat 一般也是受公安部网信部所‘监督’,顾名思义,昨天刚看了聊天记录,今天那个群秒速解散且同时您家即将收到了来自公安部的查水表行动。
浑浑噩噩之下,创建自己的即时通讯系统是为重点项目,本次教程通过教导各位以两个方法来安装RockerChat,并正确配置系统设置。
在RockerChat上面提供了以在线方式各种软件基础上的安装,如:人人皆知的、好用的Docker容器方法,AWS忠实用户必选的AWS EC2部署方法。我们将会编写如何使用在线docker安装和离线docker安装这两个方法来为各位挑选使用。链接指向
不建议使用Linux系统实装方法,因为他的教程已经是三年前了,对于现在的Linux系统可能不适配。为避开不必要的麻烦,故而推荐采用全新的自适应的Docker安装方法。
Docker方式安装RockerChat可以选择在线版和离线版,请选择适合自己的服务器环境的情况下使用其中一个方法,事半功倍。
一、在线安装RocketChat
此方法最推荐!
一般我们的VPS或者独立服务器都可以直接双向通信,公网用户可以访问本服务器上的任何网络服务, 同时内网用户可以访问公网的海量网络服务。如此也可适用于常规方法安装新服务的。如果您的服务器受特殊管制,则可以查看下一个方法(点击跳转)。
教程参考:
使用 Docker 和 Docker Compose 进行部署
1. Linux版安装
如果您使用为Windows版,请到此。
1.1 本次教程使用 Ubuntu,CentOS请自行更换相关程序的指令执行下列的代码。在 Ubuntu 上面更新软件源数据以匹配最新版。
bsx06@bsx06-Standard-PC-Q35-ICH9-2009:~$ sudo apt list --upgradable
bsx06@bsx06-Standard-PC-Q35-ICH9-2009:~$ sudo apt update
bsx06@bsx06-Standard-PC-Q35-ICH9-2009:~$ sudo apt upgrade
bsx06@bsx06-Standard-PC-Q35-ICH9-2009:~$ sudo reboot #最好请重启系统以更新生效
1.2 在您的 Ubuntu 上,安装 Apache / Nginx 等Web服务器软件,用于反向代理作用。

此 docker 安装方法提供两种:Docker Desktop 或 Docker Compose 。前者只适用于带有GNOME桌面的Ubuntu,后者命令行和桌面版皆可适用。
1.3 Docker 安装( Docker Desktop 版):
参考来源:在 Linux 上安装 Docker Desktop
1.3.1 先决条件:
一般您选择安装非server版本的时候,会默认安装Gnome桌面的。不建议server版本强制安装gnome!最好选择高性能VPS以支持非 server 版 Ubuntu 使用。
sudo apt install gnome-terminal

1.3.2 设置安装所需的 apt 存储库:
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update


1.3.3 下载 Docker Desktop 安装包并上传至您的服务器上的 root 目录:
下载来源:Docker Desktop 发行说明
请下载此(最新)版本:docker-desktop-amd64.deb

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

1.3.4 在您的服务器上安装 Docker Desktop
登录SSH后,进入上传目录,在此目录下使用管理员权限来执行以下操作:
sudo apt-get update
sudo apt-get install ./docker-desktop-amd64.deb


如果弹出以下结果,则请忽略,这是因为:安装过程结束时, apt 由于无法以目前用户权限下载软件包而显示错误。您可以忽略此错误消息。
N: Download is performed unsandboxed as root, as file '/home/user/Downloads/docker-desktop.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)

Docker 备注:
默认情况下,Docker Desktop 安装在 /opt/docker-desktop 。
DEB 包包含一个安装后脚本,可自动完成额外的设置步骤。
安装后脚本:
1.设置 Docker Desktop 二进制文件的功能以映射特权端口并设置资源限制。
2.将 Kubernetes 的 DNS 名称添加到/etc/hosts。
3.创建从 /usr/local/bin/com.docker.cli 到 /usr/bin/docker 的符号链接。这是因为经典 Docker CLI 安装在 /usr/bin/docker 。Docker Desktop 安装程序还会安装一个包含云集成功能的 Docker CLI 二进制文件,它本质上是 Compose CLI 的包装器,位于 /usr/local/bin/com.docker.cli 。符号链接确保包装器可以访问经典 Docker CLI。
1.3.5 启用 Docker Desktop :
要启动 Linux 版 Docker Desktop:
1.导航到 Gnome/KDE 桌面中的 Docker 桌面应用程序。
2.选择Docker Desktop来启动 Docker。
3.显示 Docker 订阅服务协议。
选择“接受”以继续。接受条款后,Docker Desktop 将启动。
请注意,如果您不同意条款,Docker Desktop 将无法运行。您可以稍后打开 Docker Desktop 并选择接受条款。


或者打开 终端 ,输入以下命令即可命令行启动 Docker Desktop:
systemctl --user start docker-desktop
systemctl --user status docker-desktop ###查看docker-desktop运行状态

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


1.3.6 设置 Docker 自启动:
要使 Docker Desktop 在登录时启动,请从 Docker 菜单中选择 “设置” > “常规” > “登录计算机时启动 Docker Desktop”。

或者,打开终端并运行:
systemctl --user enable docker-desktop

systemctl --user status docker-desktop

1.3.7 退出 Docker 服务:
要停止 Docker Desktop,请选择 Docker 菜单图标以打开 Docker 菜单,然后选择退出 Docker Desktop。
或者,打开终端并运行:
systemctl --user stop 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. 防火墙限制
警告:在安装 Docker 之前,请确保考虑以下安全隐患和防火墙不兼容性。
如果您使用 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)架构兼容。
注意:Ubuntu 衍生发行版(例如 Linux Mint)上的安装不受官方支持(尽管可能有效)。
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 捆绑的版本冲突。
运行以下命令卸载所有冲突的软件包:
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
apt-get 可能会报告您没有安装这些软件包。
卸载 Docker 时,存储在 Docker 中的镜像、容器、卷和网络 /var/lib/docker/ 不会自动删除。如果您想从全新安装开始,并希望清理所有现有数据,请阅读“卸载 Docker Engine”部分。
1.4.2 安装 Docker :
要安装 Docker Compose,需要先安装 Docker Engine。
您可以根据需要以不同的方式安装 Docker Engine:
Docker Engine 与Linux 版 Docker Desktop捆绑在一起 。这是最简单、最快捷的入门方式。- 从Docker 的 apt 存储库设置并安装 Docker Engine 。
- 手动安装并手动管理升级。
- 使用 便捷脚本。仅推荐用于测试和开发环境。
第一条不建议使用,因为是跟Docker Desktop有关,没必要再说吧。
本次我们将使用第二条,次要的安装方法:
1.设置 apt 存储库:
打开终端,输入以下内容:
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
2.安装 Docker:
2.1 最新版(一键安装):
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
2.2 选择具体版本(适合部分软件的指定限制版本):
要安装特定版本的 Docker Engine,首先列出存储库中的可用版本:
# List the available versions:
apt-cache madison docker-ce | awk '{ print $3 }'
5:28.1.1-1~ubuntu.24.04~noble
5:28.1.0-1~ubuntu.24.04~noble
...

选择所需版本并安装:
VERSION_STRING=5:28.1.1-1~ubuntu.24.04~noble
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
3.测试 Docker:
通过运行 hello-world 镜像验证安装是否成功:
sudo systemctl start docker
sudo docker run hello-world

1.4.3 设置 Docker 自启动:
打开终端,输入以下内容即可激活:
sudo systemctl enable docker
sudo systemctl status docker #检查 Docker 情况


1.5 设置 当前用户添加进 Docker 组以使用 Docker 命令:
1.检查当前用户组:
whoami

2.添加用户进入 Docker 组:
sudo usermod -aG docker $USER #“$USER” 替换为 上面得出的当前用户名称,如“bsx06”
sudo reboot

1.6 获取 Compose 文件
1. 进入您想要安装RocketChat的目录,例如:/www/Chat

临时将其目录下的权限设置为 777:
sudo chmod 777 ./


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

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

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

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


:wq
以保存文件。
或者
在此处目录打开终端:

输入此命令以下载示范文件到此目录:
curl -L https://raw.githubusercontent.com/RocketChat/Docker.Official.Image/master/compose.yml -O

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

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


:wq
以保存文件。
3. 修改 .env 文件里面的变量:
- 将 RELEASE 变量设置为您想要的 Rocket.Chat 版本。如:RELEASE=7.5.1。RocketChat 建议不用 latest 版本,详细可参阅 releases page 和 available 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 文件之后,在您的终端上输入如下命令以启动:
docker compose up -d
此命令将:
- 启动名为 mongodb 的 MongoDB 服务。
- 启动一个服务 rocketchat ,它也将等待 mongodb 准备就绪。




以上是启动 Rocker Chat 容器和 mongodb 容器启动过程。
如果在部署过程中遇到问题,请参考以下资源进行日志记录和故障排除:

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

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

至此属于您的 RocketChat 搭建完毕!
记得把 RocketChat 配置文件所在目录的权限改回来:
sudo chmod 755 ./
下面是管理 Rocker.chat 的相关知识:
- User Guides:了解 Rocket.Chat 帐户的基础知识、房间类型以及如何与工作区用户进行交流。
- Workspace Administration:管理员和所有者可以设置和管理各种配置。
- Marketplace:探索可用的应用程序来增强您的工作空间。



1.9 附加功能:
1.9.1 Rocket Chat 开启 HTTPS 访问:
参考来源:为您的 Rocket.Chat 工作区启用 HTTPS

1.使用 RocketChat 推荐的 Traefik 进行反向代理:
注:在继续之前,请确认已为转到服务器 IP 的域设置了正确的 A 记录(可选 CNAME 记录)。
1.1 更新文件中的以下变量 .env 。如果没有,请按照our example以下方式创建 .env 文件。
- LETSENCRYPT_EMAIL:TLS 证书所需的电子邮件地址。
- DOMAIN:仅限您的域名或子域名。避免添加 https:// 或任何尾部斜杠。确认此域名解析为服务器 IP 地址。
- RELEASE:您首选的 Rocket.Chat 版本。这里是你安装的rocketchat版本。
- ROOT_URL:将值设置为“ https://your-domain.com ”,将“ your-domain.com ”替换为您要使用的域名。
- BIND_IP:设置为 127.0.0.1 。
sudo vim .env
LETSENCRYPT_EMAIL= # your email, required for the tls certificates
DOMAIN= # set this to your domain name or subdomain, not trailing slashes or https://, just the domain
RELEASE= # set the rocketchat release
ROOT_URL= # set this to https://${DOMAIN} replace ${DOMAIN} with the actual domain
BIND_IP=127.0.0.1
例:
[email protected]
DOMAIN=rocketchat.com
RELEASE=7.6.1
ROOT_URL=https://rocketchat.com
BIND_IP=127.0.0.1


保存并退出。
1.2 在您目录下运行此命令以下载 traefik 模板文件:
curl -LO \ https://raw.githubusercontent.com/RocketChat/Docker.Official.Image/master/traefik.yml

1.3 重启正在运行的 RocketChat 容器
docker compose up -d rocketchat --force-recreate

1.4 启动 traefik:
docker compose -f traefik.yml up -d
等待 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),请使用:
sudo apt update
sudo apt install certbot
对于基于 RPM 的发行版(例如 Redhat 和 Centos),请使用: (RocketChat乱写,特意展示出来他的错误)
sudo yum install yum-utils
sudo yum install nginx
通过运行此命令从 Let’s Encrypt 获取证书(第二个或更多域是可选的):
sudo certbot certonly --standalone --email <[email protected]> -d <domain.com> -d <subdomain.domain.com>
例:
sudo certbot certonly --standalone --email <[email protected]> -d <123.com> -d <chat.123.com> -d <www.123.com>
2.2 使用 TLS/SSL 配置 Nginx Web 服务器:
注:Rocket.Chat 通常默认设置为在该 3000 端口上运行。但是,您可以使用 Nginx 作为反向代理,以便用户更轻松地访问它。这会将您的域名链接到在该端口上运行的 Rocket.Chat 服务器。这样,您的用户就可以通过您的域名访问您的工作区,而无需直接使用 URL 中的端口。
安装 Nginx Web 服务器:
sudo apt-get install nginx
备份默认配置文件以供参考:(可选)
cd /etc/nginx/sites-available
sudo mv default default.reference
为 Rocket.Chat 创建一个新的站点配置:
sudo vim /etc/nginx/sites-available/default #default处请更换为您所想到的友好名称.
示例:
sudo vim /etc/nginx/sites-available/chat
将以下内容粘贴到新文件中:
### 替换ABC.DOMAIN.COM为您的域名。###
server {
listen 443 ssl;
server_name <ABC.DOMAIN.COM>; #replace <ABC.DOMAIN.COM> with your domain name
ssl_certificate /etc/letsencrypt/live/<ABC.DOMAIN.COM>/fullchain.pem; #replace <ABC.DOMAIN.COM> with your domain name
ssl_certificate_key /etc/letsencrypt/live/<ABC.DOMAIN.COM>/privkey.pem; #replace <ABC.DOMAIN.COM> with your domain name
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
root /usr/share/nginx/html;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
proxy_pass http://localhost: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-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}
}
server {
listen 80;
server_name <ABC.DOMAIN.COM>; #replace <ABC.DOMAIN.COM> with your domain name
return 301 https://$host$request_uri;
}
:wq 以保存文件。
测试 Nginx 配置以确保没有语法错误:
sudo nginx -t
如果语法测试成功,则重启Nginx:
sudo systemctl restart nginx
注:如果您有安全组限制,请允许当前 IP 使用 TCP/22 进行 SSH 连接,并允许计划用于访问的 IP 使用 TCP/443 进行连接。
打开 Web 浏览器并访问 https://your-domain.com
(您配置的实际域名)安全地访问您的 Rocket.Chat 工作区。

小贴士:
我们现在使用HTTPS连接,是由游览器或者CDN直接响应读取到 Web 服务器上面以获取该服务器配置的源证书。对于反向代理来说是不需要此流程的,因为:客户端 -> CDN/Internet -> 服务端的这个HTTPS连接路线所表示的是:客户端只读取服务端上面 Web 服务器的 SSL/TLS 证书即可,对于后面的 Web 服务器是不是安全读取网站内容或者反向代理至另一个 Web 服务器,默认认为是他们自有把握保证建立连接的安全而已。因此在服务端上面读取本地的另一个 Web 服务是不需要验证安全性,本身只在系统之内就足以保证连接稳定但不能完全保证连接安全,要小心预防木马病毒的攻击。




3. 使用 Apache 进行反向代理:(本人目前使用的)
3.1 从 Let’s Encrypt 获取 SSL 证书:
使用适用于你的 Linux 版本的软件包管理器进行安装 certbot 。对于基于 Debian 的发行版(例如 Debian 和 Ubuntu),请使用:
sudo apt update
sudo apt install certbot
通过运行此命令从 Let’s Encrypt 获取证书(第二个或更多域是可选的):
sudo certbot certonly --standalone --email <[email protected]> -d <domain.com> -d <subdomain.domain.com>
例:
sudo certbot certonly --standalone --email <[email protected]> -d <123.com> -d <chat.123.com> -d <www.123.com>
3.2 使用 Apache 反向代理 RocketChat 并配置 SSL/TLS :
安装 Apache Web 服务器:
sudo apt update
sudo apt install apache2
apache2 -version


验证 Apache 服务运行情况:
sudo systemctl status apache2
Apache 自启动设置:
sudo systemctl enabled apache2
Apache,启动!
sudo systemctl start apache2

配置 Apache 模块:
配置模块有两种方法,一个是修改 httpd.conf 以开启模块,一个是直接输入命令开启,本人建议使用前者。
1. 修改 httpd.conf :
进入 Apache 的安装目录,通常是:/etc/apache2/ 下,有如下文件目录:

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

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

在这里,我们需要开启如下模块:
###反向代理###
LoadModule headers_module
LoadModule remoteip_module
LoadModule proxy_module
LoadModule proxy_connect_module
LoadModule proxy_ftp_module
LoadModule proxy_http_module
LoadModule proxy_fcgi_module
LoadModule proxy_scgi_module
LoadModule proxy_uwsgi_module
LoadModule proxy_fdpass_module
LoadModule proxy_wstunnel_module
LoadModule proxy_ajp_module
LoadModule proxy_balancer_module
LoadModule proxy_express_module
LoadModule proxy_hcheck_module
LoadModule rewrite_module
###HTTPS连接###
LoadModule ssl_module modules/mod_ssl.so
LoadModule http2_module modules/mod_http2.so #Cloudflare的HTTP/2配置所需。
开启方法:在需要开启的模块名的开头上,去掉“ # ”即可。

: wq 以保存文件。
保存之后,请重启 Apache 服务:
sudo systemctl restart apache2
2. 命令开启:
打开终端,进入 Apache 安装目录,例:/etc/apache2/
cd /etc/apache2/
输入如下命令:
###反向代理###
sudo a2enmod headers
sudo a2enmod remoteip
sudo a2enmod proxy
sudo a2enmod proxy_connect
sudo a2enmod proxy_ftp
sudo a2enmod proxy_http
sudo a2enmod proxy_fcgi
sudo a2enmod proxy_scgi
sudo a2enmod proxy_uwsgi
sudo a2enmod proxy_fdpass
sudo a2enmod proxy_wstunnel
sudo a2enmod proxy_ajp
sudo a2enmod proxy_balancer
sudo a2enmod proxy_express
sudo a2enmod proxy_hcheck
sudo a2enmod rewrite
###HTTPS连接###
sudo a2enmod ssl
sudo a2enmod http2 #Cloudflare的HTTP/2配置所需。
输入完毕之后请重启 Apache 服务:
sudo systemctl restart apache2
设置 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
vim chat.123.com.conf

使用 vim 打开此新建 conf 后,按照默认配置(默认的 conf 位于:“Apache安装目录”/conf/extra/httpd-default.conf )添加如下内容,其中的 domain.com 和 本地IP+端口 请自行修改:
#默认配置#
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName sub.domain.com
ProxyRequests Off
<Proxy *>
Require all granted
</Proxy>
ProxyPass / http://127.0.0.1:8080/xxx/
ProxyPassReverse / http://127.0.0.1:8080/xxx/
ProxyPassReverseCookiePath /xxx /
</VirtualHost>
#示范配置#
<VirtualHost *:80>
ServerAdmin chatadmin.123.com
ServerName chat.123.com
ServerAlias chat1.123.com #中转域名,可选
ProxyRequests Off
<Proxy *>
Require all granted
</Proxy>
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>
:wq 以保存文件。
在同样的目录下创建专用于HTTPS的配置文件:chat.123.com-ssl.conf,内容配置在如下此处。
为了方便管理,您可以在同一 conf 下配置HTTPS内容,要做到此步骤,您需要在 “Apache安装目录”/conf 下的 httpd.conf 里面,注释如下内容:
#Include conf/extra/httpd-ssl.conf

然后再次打开 chat.123.com.conf ,在80端口下面直接新增443端口相关配置:
###默认配置###<IfModule mod_ssl.c>#此处不需要,因为已经在 httpd.conf 开启了。
<VirtualHost _default_:443>
ServerAdmin [email protected]
ServerName sub.domain.com
ProxyRequests Off
<Proxy *>
Require all granted
</Proxy>
#反向代理配置
ProxyPass / http://127.0.0.1:8080/xxxx/
ProxyPassReverse / http://127.0.0.1:8080/xxxx/
ProxyPassReverseCookiePath /xxxx /
SSLEngine on
#证书配置
SSLCertificateFile /usr/local/apache2/ssl/2_domain.com.crt
SSLCertificateKeyFile /usr/local/apache2/ssl/3_domain.com.key
SSLCertificateChainFile /usr/local/apache2/ssl/1_root_bundle.crt
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
###示例配置###
<VirtualHost *:443>
ServerAdmin chatadmin.123.com
ServerName chat.123.com
ServerAlias chat1.123.com #中转域名,可选
ProxyRequests Off
<Proxy *>
Require all granted
</Proxy>
#反向代理配置
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
#开启SSL
SSLEngine on
#证书配置
SSLCertificateFile /etc/letsencrypt/live/<ABC.DOMAIN.COM>/chain.pem;
# <ABC.DOMAIN.COM> 替换为您选的域名,如:chat.123.com | 单证书文件
SSLCertificateKeyFile /etc/letsencrypt/live/<ABC.DOMAIN.COM>/privkey.pem;
# <ABC.DOMAIN.COM> 替换为您选的域名,如:chat.123.com | 私钥文件
SSLCertificateChainFile /etc/letsencrypt/live/<ABC.DOMAIN.COM>/fullchain.pem;
# <ABC.DOMAIN.COM> 替换为您选的域名,如:chat.123.com | 泛域名证书文件
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
:wq 以保存文件。
设置好之后,请重启 Apache 服务以生效。
sudo systemctl restart apache2
自定义目录:
要想让 Apache 在您所选的目录下进行读取配置文件以运行网站,您需要在 “Apache安装目录”/conf 下打开 httpd.conf 。
sudo vim httpd.conf
在 httpd.conf 的末尾处添加如下内容:
TraceEnable off
IncludeOptional /您创建的目录/*.conf #例:/www/conf/*.conf
ServerLimit 800

:wq 以保存文件,然后请重启 Apache 服务。
然后到您所创建的目录下,新建 chat.xxx.com.conf 文件,名称随意,例:chat.123.com.conf:
vim chat.123.com.conf
在打开的 conf 中,请按照以下示例内容,根据自身的情况进行修改相关内容:
<VirtualHost *:80>
ServerAdmin chat.xxx.com
ServerName chat.xxx.com
ServerAlias chat.xxx.com
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>
<VirtualHost *:443>
ServerName chat.xxx.com
ServerAlias chat.xxx.com
SSLEngine on
SSLProxyEngine On
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
SSLProxyVerify none
SSLCertificateFile "/xp/panel/vhost/ssl/chat.xxx.com/cert/fullchain.pem"
SSLCertificateKeyFile "/xp/panel/vhost/ssl/chat.xxx.com/cert/privkey.key"
SSLProxyProtocol all -SSLv2 -SSLv3 -TLSv1
SSLProxyCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP
<Proxy *>
ProxyAddHeaders off
ProxyPreserveHost off
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>
###证书配置请参考默认目录所示例的。###
###chat.xxx.com 替换为 您的域名。###
修改完成后请输入 :wq 以保存文件,然后再次重启 Apache 服务。
sudo systemctl restart apache2
至此,Apache 配置 HTTPS 访问设置步骤已经结束。
3.3 HTTPS访问测试:
打开您所选的域名,例如:https://chat.123.com,如果如下图示则表示配置成功:


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


4. 使用 IIS (互联网信息服务)进行反向代理:
此方法适合 Windows 版安装教程,建议与此教程搭配使用,当然您可以用来反向代理 Linux ,只不过要从 localhost 改为您的服务器的IP。互联网信息服务(Internet Information Services)的可视化界面使得配置反向代理更加简单,反正上面的命令行配置简直乱得发疯。
4.1 安装 IIS 及 反代模块
IIS 安装教程在此处:点击以查看
- Application Request Routing:https://www.iis.net/downloads/microsoft/application-request-routing
- URL Rewrite:http://iis.net/downloads/microsoft/url-rewrite
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版回退处)
教程参考:
在 Windows 上部署
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 compose up
输入后,请等待几分钟让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 版 离线安装教程。
教程参考:
使用私有 Docker 注册表部署 Rocket.Chat

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 主机上,使用下列命令拉取用于创建注册表的镜像:
docker pull registry:2
2. 检查镜像下载情况:
docker images

3. 创建 .tar 注册表映像文件:
docker save -o registry_image.tar registry:2
4. 如果您的互联网访问服务器和隔离服务器无法通信且不在同一个网络上,请将下载的.tar文件复制到 USB 驱动器,然后使用 USB 驱动器将其传输到隔离服务器。
或者,如果两台服务器可以相互通信,则可以使用以下命令将 .tar 文件传输到隔离的注册中心主机服务器:
scp -i [key] <registry_tar_file_path> <user_name@target_ip_address:/destination_path>
注意:
使用适当的值更新以下内容:
- 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 镜像或容器:
docker images
docker ps
6. 进入您上传 .tar 文件所在的目录路径下,运行下列命令以检查传输情况:
ls -al
7. 要在上面加载 .tar 文件,在此目录下运行下列命令:
docker load -i registry_image.tar
8. 运行下列命令以检查加载情况:
docker images

9. 启用此注册表容器,请运行下列命令:
docker run -d -p 5000:5000 --restart=always --name private-registry registry:2
注意:
- 不强制在端口 5000 上运行容器。建议的端口只是一个示例,可以根据您的具体要求进行更新。
private-registry
可使用您喜欢的注册表容器名称进行更新。- 对于生产环境,通过在主机上指定本地文件夹进行存储或实施其他合适的持久性机制来确保图像的持久性。
10. 运行下列命令以查看容器运行情况:
docker ps

现在您可以在此上面存储 Rocket.Chat 和 MongoDB 镜像了。
1.3 将 Rocket.Chat 和 MongoDB 镜像传输到注册表托管服务器上
与 1.2 一样,选择刚才的传输方法,按照下面步骤进行存储过程:
1. 返回到刚才的有互联网访问的主机 在您的注册表服务器(临时开通外网访问)里面,执行下列命令以拉取这两个镜像:
docker pull registry.rocket.chat/rocketchat/rocket.chat:latest
docker pull docker.io/bitnami/mongodb:latest
其中的 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 pull registry.rocket.chat/rocketchat/rocket.chat:7.6.1
docker pull docker.io/bitnami/mongodb:7.0.15
或者在您的主机上用 docker 执行上列命令,然后将下载的镜像打包,用 FTP 传输到注册表托管服务器上,再运行下列命令上载镜像:
docker load -i docker_image.tar
2. 运行下列命令检查镜像下载情况:
docker images

3. 运行下列命令以更改 Rocket.Chat 和 MongoDB 镜像的标记:
docker tag registry.rocket.chat/rocketchat/rocket.chat:7.0.0 <registry_ip_address>:5000/registry.rocket.chat/rocketchat/rocket.chat:7.0.0
docker tag bitnami/mongodb:latest <registry_ip_address>:5000/docker.io/bitnami/mongodb:latest
注意:
<registry_ip_address:5000>
如果您的注册表容器未在端口 5000 上运行,请使用注册表主机服务器的 IP 地址和相应的端口号进行更新。
示例 127.0.0.1:5000 或 10.0.0.6:5000 ,前者是只在一个服务器下配置,后者是两个服务器的配置。- latest 替换为 你选择的版本号,最好是写已经在您的服务器上面的那两个镜像的版本号。
示例:
docker tag registry.rocket.chat/rocketchat/rocket.chat:7.6.1 10.0.0.6:5000/registry.rocket.chat/rocketchat/rocket.chat:7.6.1
docker tag bitnami/mongodb:7.0.15 10.0.0.6:5000/docker.io/bitnami/mongodb:7.0.15
4. 执行下列命令可以查看新标记的镜像:
docker images
5. 因为是两个服务器之间的通信协议是为 HTTP,内部通信并不需要证书,因此请修改注册表服务器上面的 docker 守护程序文件以支持 HTTP 通信。因为他们是默认 HTTPS 安全通信的:
sudo vim /etc/docker/daemon.json
在 json 文件里面加入以下内容:
{
"insecure-registries": ["<registry_ip_address>:5000"]
}
注:”<registry_ip_address>:5000″ 与第 3 步的设置的一致。
示例:
{
"insecure-registries": ["10.0.0.6:5000"]
}
6. 运行下列命令以重启 Docker:
sudo systemctl restart docker
7. 运行以下命令将标记的镜像推送到隔离服务器上的注册表:
docker push <registry_ip_address>:5000/registry.rocket.chat/rocketchat/rocket.chat:7.0.0
docker push <registry_ip_address>:5000/docker.io/bitnami/mongodb:latest
示例:
docker push 10.0.0.6:5000/registry.rocket.chat/rocketchat/rocket.chat:7.6.1
docker push 10.0.0.6:5000/docker.io/bitnami/mongodb:7.0.15
8. 为了确认镜像是否成功推送,请运行以下命令在 registry 容器内打开一个交互式 shell:
docker exec -it private-registry sh
注:private-registry
,如果注册表容器的名称不同,请替换为您所设置的名称。
9. 运行下列命令来查看注册表中的 docker 镜像:
ls /var/lib/registry/docker/registry/v2/repositories

确认 MongoDB 和 Rocket.Chat 镜像存在于注册表中,并且您已准备好从具有注册表的隔离服务器安装 Rocket.Chat。
注:您可能只会看到图片路径的名字。例如:docker.io
而不是 /docker.io/bitnami/mongodb
。
1.4 下载并传输 Rocket.Chat 文件:
我们将下载必要的文件并将其传输到您要安装 Rocket.Chat 的隔离服务器。请按以下步骤操作:
1. 在可访问互联网的主机上下载 compose.yml 和 .env 模板文件,请运行以下命令:
curl -L https://raw.githubusercontent.com/RocketChat/Docker.Official.Image/master/compose.yml -O
curl -L https://raw.githubusercontent.com/RocketChat/Docker.Official.Image/master/env.example -O
2. compose.yml 不建议直接编辑该文件中的配置,建议在 .env 文件中设置环境变量。修改该 .env 文件时需要注意以下几点:
- 将文件名更改为.env。
- 取消注释您正在更新的变量。
- 将变量设置RELEASE为您想要的 Rocket.Chat 版本。请参阅我们的releases page和available 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 的隔离服务器。
或者,如果两台服务器可以相互通信,您可以使用以下命令将下载的文件传输到隔离服务器:
scp -i [key] <compose_file_path> <user_name@target_ip_address:/destination_path>
scp -i [key] <env_file_path> <user_name@target_ip_address:/destination_path>
使用适当的值更新以下内容:
key
:访问应发送文件的隔离服务器的密钥。compose_file_path
:compose.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 传输到隔离的注册中心主机服务器上。(建议)
中场休息!



1.5 安装 Rocket.Chat:
Rocket.Chat 和 MongoDB 镜像已推送到包含 registry 的隔离服务器,下一步是在第二台隔离服务器上安装 Rocket.Chat。您需要使用包含 registry 的隔离服务器中的镜像以及我们上一步传输的文件来部署 Rocket.Chat。请按照以下步骤操作:
1. 运行以下命令确认 Rocket.Chat 服务器上没有运行 Rocket.Chat 和 MongoDB 镜像:
docker images
docker ps
2. 要使用 HTTP 在服务器和注册表之间进行通信,请修改 docker 守护程序文件以允许与不安全的注册表进行通信,运行下列命令以打开守护程序文件:
sudo vim /etc/docker/daemon.json
3. 输入以下内容,保存并退出:
{
"insecure-registries": ["<registry_ip_address>:5000"]
}
注意:<registry_ip_address:5000>
如果您的注册表容器未在端口 5000 上运行,请使用注册表主机服务器的 IP 地址和相应的端口号进行更新,例如:10.0.0.6:5000 。
示例:
{
"insecure-registries": ["10.0.0.6:5000"]
}
4. 重启 Docker:
sudo systemctl restart docker
5. 检查一下 .env 文件里面的 ROOT_URL 值,修改此值以匹配您的服务器的 URL 或域名。例如:
ROOT_URL: http://localhost:3000
6. 在 compose.yml 文件里面修改 Rocket.Chat 和 MongoDB 的镜像路径,使其引用注册表托管服务器中镜像仓库中的镜像。例如:
rocketchat:
image: <registry_ip_address>:5000/registry.rocket.chat/rocketchat/rocket.chat:7.0.0
mongodb:
image:<registry_ip_address>:5000/docker.io/bitnami/mongodb:latest
注:<registry_ip_address:5000>
如果您的注册表容器未在端口 5000 上运行,请使用注册表主机服务器的 IP 地址和相应的端口号进行更新。
示例:
rocketchat:
image:10.0.0.6:5000/registry.rocket.chat/rocketchat/rocket.chat:7.6.1
....
mongodb:
image:10.0.0.6:5000/docker.io/bitnami/mongodb:7.0.15
7. 通过执行以下命令安装 Rocket.Chat:
docker compose up -d
8. 运行以下命令来确认 RocketChat 和 MongoDB 镜像存在并且其容器正在主动运行:
docker images
docker ps
9. 要查看 Rocket.Chat 容器的日志/状态,请执行以下命令:
docker compose logs -f rocketchat

它还显示您的站点 URL,您可以使用它来访问您的工作区。
现在,您已成功在隔离环境中部署 Rocket.Chat。Log into your workspace使用您的站点 URL,第一个登录的用户将成为工作区管理员。
1.6 设置反向代理:
可选的有:Traefik | Nginx | Apache | IIS 。根据您的服务器本身情况来选择相应的配置。
1.7 后续步骤
成功部署隔离工作区后,您必须注册该工作区。请按照Air-Gapped Workspace Registration document。此后,您需要应用workspace license。然后,您就可以开始使用您的工作区了!您可以参考additional configurations和app installation隔离工作空间的详细信息。
要了解有关工作区的更多信息,您可以参考以下内容:
- User Guides:了解 Rocket.Chat 帐户的基础知识、房间类型以及如何与工作区用户进行交流。
- Workspace Administration:管理员和所有者可以设置和管理各种配置。
RocketChat 安装教程全部到此结束了,这是一个非常有经验的长篇大论,细细观看吧~



草你妈,终于写完了!
逼文章,谁写谁傻逼。

萝卜:难蚌。
