【技术转载】利用Cloudflare Tunnel做内网穿透安装discourse - 万事屋 - 技术宅银魂 - 科技改变生活 - 万事屋

【技术转载】利用Cloudflare Tunnel做内网穿透安装discourse

搞测试,本来是内部环境,但discourse有点大病,一定要公网IP服务器,这就扯淡了,用Cloudflare Tunnel试试。

(DIscuz做内网社区有点毛病,真心累)

使用Cloudflare Tunnel为没有公网IP和80/443端口的服务器安装Discourse是个不错的解决方案。下面是具体步骤:

1. 在Cloudflare上创建一个新的隧道(Tunnel):

  1. 登录Cloudflare控制面板,进入”Zero Trust” -> “Access” -> “Tunnels”
  2. 点击”Create a tunnel”按钮,给隧道起个名字如discourse-tunnel
  3. 记下生成的隧道ID和隧道密钥

2. 在服务器上安装cloudflared客户端:

sudo wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb

 

3. 使用第1步的隧道ID和密钥登录cloudflared:

cloudflared tunnel login <Tunnel-ID>

根据提示粘贴隧道密钥并回车。

4. 创建一个配置文件如 /etc/cloudflared/config.yml,内容如下:

tunnel: <Tunnel-ID>
credentials-file: /root/.cloudflared/<Tunnel-ID>.json

ingress:
- hostname: discourse.example.com
service: http://localhost:8080
- service: http_status:404

 

将`<Tunnel-ID>`替换为实际的隧道ID。`discourse.example.com`替换为你的Discourse域名。

5. 配置DNS解析:

在Cloudflare上将discourse.example.com的CNAME记录指向 <Tunnel-ID>.cfargotunnel.com

6. 启动cloudflared:

cloudflared tunnel run <Tunnel-ID>

7. 安装Docker和Docker Compose,参考:

8. 使用Docker部署Discourse:

  • 参考官方文档 https://github.com/discourse/discourse/blob/main/docs/INSTALL-cloud.md
  • 执行bootstrap脚本,设置hostname为 discourse.example.com
  • 配置邮件服务器等信息
  • 使用`./launcher start app`启动Discourse

9. 此时访问 discourse.example.com 即可通过Cloudflare Tunnel连接到服务器内网的Discourse

以上步骤涉及较多内容,建议仔细阅读Cloudflare Tunnel和Discourse的文档。整个过程需要一定的Linux和网络知识。如果遇到问题,可以查阅文档、搜索或者提问寻求帮助。

    请登录后查看回复内容

万事屋新帖