# Discourse Chat - Rocket.Chat 集成

**URL:** https://meta.discourse.org/t/discourse-chat-rocket-chat-integration/353949
**Category:** Support
**Created:** [2025年二月23日 15:29 UTC](https://meta.discourse.org/t/discourse-chat-rocket-chat-integration/353949 "2025-02-23T15:29:37Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![BrianC](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/brianc/32/487568_2.png) [@BrianC](https://meta.discourse.org/u/BrianC)
#### Post date: [2025年二月23日 15:29 UTC](https://meta.discourse.org/t/discourse-chat-rocket-chat-integration/353949/1 "2025-02-23T15:29:37Z")

</div>

我想在我的网站上安装 Rocket.Chat 社区版，然后使用 Discourse Chat 集成 Rocket.Chat。我通过与 OpenAI O3 的讨论创建了本指南。有人能确认这些步骤是否正确部署 Docker Rocket.Chat 实例吗？我只是想避免因不知道如何正确操作而造成任何意外后果。

谢谢！

* * *

第一步：在 Cloudflare 中配置您的 DNS

1. 登录 Cloudflare 并为 [chat.website.com](http://chat.website.com) 添加一个 A 记录（或 CNAME），指向您的服务器 IP 地址。
2. 如果您想使用 Cloudflare 的安全和性能功能，请确保已启用 Cloudflare 代理。

* * *

第二步：设置 Rocket.Chat 部署

1. SSH 进入您的服务器并创建一个 Rocket.Chat 目录（如果尚未创建）：  
bash  
复制  
mkdir -p /opt/rocket.chat  
cd /opt/rocket.chat
2. 在此目录中创建一个 docker-compose.yml 文件，内容如下：  
yaml  
复制  
version: “3.8”

services:  
rocketchat:  
image: rocket.chat:latest  
restart: unless-stopped  
environment:  
- PORT=3000  
- ROOT\_URL=[http://chat.website.com](http://chat.website.com)  
- MONGO\_URL=mongodb://mongo:27017/rocketchat?replicaSet=rs0  
- MONGO\_OPLOG\_URL=mongodb://mongo:27017/local?replicaSet=rs0  
depends\_on:  
- mongo  
ports:  
- “3000:3000”  
volumes:  
- rocketchat\_data:/app/uploads  
networks:  
- common

mongo:  
image: mongo:4.0  
restart: unless-stopped  
command: mongod --smallfiles --oplogSize 128 --replSet rs0  
volumes:  
- mongo\_data:/data/db  
networks:  
- common

volumes:  
rocketchat\_data:  
mongo\_data:

networks:  
common:  
external: false  
注意：  
• ROOT\_URL 设置为您的子域（此处使用 HTTP，因为 Cloudflare 和 Caddy 将在外部处理 TLS）。  
• 这两个服务都连接到一个名为 common 的自定义网络。这可确保您的 Caddy 容器在代理请求时能够解析 rocketchat 服务名。

* * *

第三步：初始化 MongoDB 副本集

1. 启动 Rocket.Chat 堆栈：  
bash  
复制  
docker-compose up -d
2. 获取 MongoDB 的容器 ID 或名称：  
bash  
复制  
docker ps
3. 连接到 MongoDB：  
bash  
复制  
docker exec -it \<mongo\_container\_id\_or\_name\> mongo
4. 在 Mongo shell 中运行：  
js  
复制  
rs.initiate()
5. 使用 exit 退出 shell。  
此步骤初始化 Rocket.Chat 用于实时操作的副本集。

* * *

第四步：更新您的 Caddy 配置  
由于 Caddy 已在自己的容器中运行，请更新其 Caddyfile 以包含 Rocket.Chat 的新站点块。编辑您的 Caddyfile（例如，位于 /path/to/your/Caddyfile），然后添加：  
caddy  
复制  
[http://chat.website.com](http://chat.website.com) {  
reverse\_proxy rocketchat:3000  
}  
重要提示：  
• reverse\_proxy 指令使用 rocketchat 服务名 — 这要求 Caddy 容器与 Rocket.Chat 容器位于同一 Docker 网络上。  
• 如果您的 Caddy 容器是通过 Docker Compose 管理的，您可以将其连接到同一个 common 网络。例如，在您的 Caddy 容器的 docker-compose 文件中，添加：  
yaml  
复制  
networks:

- common  
并确保网络已声明（或手动附加容器）。  
由于您使用 Cloudflare 进行 DNS 和 Let’s Encrypt，并且已经有了没有 email 指令的有效配置，因此在 TLS 方面无需进行更改。

* * *

第五步：重新加载 Caddy 并验证设置

1. 重新加载 Caddy：  
如果您通过 Docker 运行 Caddy，请重启容器以使其加载新的 Caddyfile 配置：  
bash  
复制  
docker restart \<caddy\_container\_name\>
2. 测试您的部署：  
打开网页浏览器并导航到 [http://chat.website.com](http://chat.website.com)。（Cloudflare 将管理 HTTPS 证书。）您应该会看到 Rocket.Chat 设置页面。
3. 完成设置：  
按照屏幕上的说明完成 Rocket.Chat 的配置。

* * *

附加自定义  
如果您需要添加其他环境变量（例如，SMTP 设置或自定义卷）或有任何特定的网络要求，请告诉我，以便进一步完善本指南。

* * *

本指南应能帮助您在由 Cloudflare 管理的子域上使用 Docker Compose 部署 Rocket.Chat 社区版，并使用 Caddy（在其自己的容器中）作为反向代理。
