利用cloudflare tunnel搭建,我也来测试玩玩。暂时没时间,用AI写一份教程。
如果你的 Ubuntu 20.04 服务器只能通过 Cloudflare Tunnel 连接外网,那么我们需要对安装步骤做一些调整,主要是在安装 Docker 和拉取 Discourse 镜像时需要使用 Cloudflare Tunnel 来连接外网。
请按照以下步骤进行操作:
1. 安装 Cloudflare Tunnel 并登录:
sudo wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb
cloudflared tunnel login
2. 创建一个新的隧道并配置域名:
cloudflared tunnel create discourse
cloudflared tunnel route dns discourse xxxx.example.com
将 `xxxx.example.com` 替换为你的实际域名。
3. 创建隧道配置文件 `config.yml`:
url: http://localhost:80
tunnel: discourse
credentials-file: /root/.cloudflared/xxxx.json
ingress:
- hostname: xxxx.example.com
service: http://localhost:80
- service: http_status:404
将 `xxxx.example.com` 替换为你的实际域名,`xxxx.json` 替换为你的实际凭证文件名。
4. 启动 Cloudflare 隧道:
cloudflared tunnel --config config.yml run &
5. 通过 Cloudflare Tunnel 安装 Docker:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker
6. 通过 Cloudflare Tunnel 安装 Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
7. 创建 Discourse 的配置文件夹并进入:
sudo mkdir -p /var/discourse
cd /var/discourse
8. 创建 `app.yml` 文件并填入以下内容:
version: '3'
services:
app:
image: discourse/discourse:latest
ports:
- "80:80"
- "443:443"
volumes:
- /var/discourse/data/shared:/shared
- /var/discourse/data/standalone:/shared/standalone
- /var/discourse/data/log:/var/log
restart: always
9. 创建 Discourse 的数据目录并设置权限:
sudo mkdir -p /var/discourse/data
sudo chown -R 1000:1000 /var/discourse/data
10. 通过 Cloudflare Tunnel 拉取 Discourse 镜像并启动容器:
sudo docker pull discourse/discourse:latest
sudo docker-compose -f app.yml up -d
现在,你的服务器上已经通过 Cloudflare Tunnel 安装并启动了 Discourse。你可以通过你配置的域名来访问 Discourse,流量会通过 Cloudflare Tunnel 加密传输。
这种情况下,由于服务器无法直接访问外网,所以在安装 Docker 和拉取 Discourse 镜像时,我们都通过 Cloudflare Tunnel 来进行,确保安装过程可以顺利完成。
如果有任何问题,欢迎随时告诉我。