跳到主内容

GsDesk Cloudflare 部署教程:免费使用 Cloudflare Workers 自建远程桌面,支持 WebRTC P2P 与浏览器远程控制

如果你想搭建一个属于自己的远程桌面平台,又不想购买中继服务器,GsDesk 提供了一套基于 Cloudflare Workers 的免费部署方案。整个项目可以直接部署到 Cloudflare,利用 Workers、D1、KV、R2 和 Durable Objects 构建完整的远程控制后台,服务端只负责 API、身份认证和 WebSocket 信令,真正的桌面画面通过 WebRTC P2P 直连 传输,不占用 Worker 流量,也不用担心视频中继带来的高额带宽成本。

GSProber · 主机测评编辑94 阅读
如果你想搭建一个属于自己的远程桌面平台,又不想购买中继服务器,GsDesk 提供了一套基于 Cloudflare Wo…

image.png

GsDesk Cloudflare 部署指南

GsDesk 支持两种互相隔离的后端:Cloudflare Workers 与 VPS 自托管。本文说明 Cloudflare 部署;VPS 见 self-host.md

方式 文档 配置文件
Cloudflare Workers 本文 根目录wrangler.toml
VPS 自托管 self-host.md apps/server/.env

部署完成后:

地址 预期结果
https://你的域名/ 纯文本**success**(API 健康,非控制页)
https://你的域名/app/ 手机 / 浏览器控制界面(默认路径,可配置)
GET /api/health JSON,含web_app_entry 字段

Windows 控制与被控请使用 GsDesk-client.exe,在本地 UI(127.0.0.1:19527)填写 Worker 地址与 JWT。


一键部署

需创建的资源

资源 默认名称 用途
D1 GsDesk 设备、会话、审计
KV GsDesk OTP、限流、Token
R2 GsDesk-files 会话文件传输
Durable Objects DeviceRoom, SessionRoom WebSocket 信令

一键部署页中 KV 命名空间名称填 GsDesk(与 D1 同名,类型不同不冲突)。

部署后:

  1. 访问 / 确认 success
  2. 访问 /app/ 确认 Web 控制端可打开
  3. 下载运行 GsDesk-client.exe
  4. 设置 填写 Worker URL 与 CONTROLLER_JWT_SECRET

手动部署

Bash
git clone https://github.com/gsvps/GsDesk.git
cd GsDesk
npm install
npx wrangler login
npm run deploy:cloudflare

deploy:cloudflare 依次执行:

  1. npm run build:web:app — 按 WEB_APP_PATH 构建 Web UI 到 apps/web/dist
  2. npm run db:migrate — 应用 D1 远程迁移
  3. wrangler deploy — 部署 Worker + [assets] 静态资源

等价命令:

Bash
npm run build:web:app
npm run db:migrate
wrangler deploy --config wrangler.toml --name GsDesk

环境变量(wrangler.toml[vars]

变量 默认 说明
WEB_APP_PATH /app 手机/浏览器控制入口路径
CONTROLLER_JWT_SECRET 开发默认 生产必换为强随机字符串
CLIENT_LATEST_VERSION 0.1.7 客户端版本(更新检查)
CLIENT_DOWNLOAD_URL GitHub Releases exe 下载链接

修改手机入口路径

例如改为 /desk

  1. 编辑 wrangler.tomlWEB_APP_PATH = "/desk"
  2. npm run build:web:app(脚本会读取 wrangler 中的路径作为 Vite --base
  3. npm run deploy:cloudflare

跳过第 2 步会导致静态资源 404 或路由错乱。


本地开发

Bash
npm run db:migrate:local -w @GsDesk/worker
npm run dev:worker          # http://127.0.0.1:8787

验证:

Bash
curl http://127.0.0.1:8787/              # success
curl http://127.0.0.1:8787/api/health    # 含 web_app_entry

本地 Worker 开发模式下 /app/ 需先 npm run build:web:app 才有静态 UI。

客户端 设置 → API 地址 http://127.0.0.1:8787,令牌与 CONTROLLER_JWT_SECRET 一致。


Agent 连接生产环境

在客户端 设置 填写 Worker 地址,或设置环境变量:

Shell
$env:GsDesk_SERVER = "https://your-worker.example.com"

发布 Windows 客户端

exe 不进 git,通过 GitHub Releases 分发:

Bash
git tag v0.1.7
git push origin v0.1.7

CI 会自动编译 GsDesk-client.exe 并附到 Release。CLIENT_DOWNLOAD_URL 默认指向 releases/latest/download/…


故障排查

问题 处理
/ 不是 success 确认 Worker 已部署最新代码
/app/ 404 或白屏 执行npm run build:web:app 后重新 deploy;检查 WEB_APP_PATH 与构建 base 一致
设备离线 Agent 已启动且 API 地址正确
令牌无效 客户端令牌 = WorkerCONTROLLER_JWT_SECRET
连接密码错误 OTP 6 位一次性;永久密码在「本机」栏设置;输入框自动识别
WebRTC 失败 检查 NAT / 防火墙;当前版本无 TURN 中继
传文件失败 确认 R2 绑定GsDesk-files 且 bucket 已创建

远控视频走 WebRTC P2P,不经过 Cloudflare 转发桌面流

教程GsDesk 是一款基于 Cloudflare Workers 与 VPS 自托管 的开源远程桌面项目,支持 WebR…

Cloudflare Workers 免费搭建开源远程桌面完整教程:无需 VPS,支持 WebRTC P2P、D1、KV、R2、浏览器远程控制、Windows 客户端和文件传输

GsDesk 是一款基于 Cloudflare Workers 与 VPS 自托管 的开源远程桌面项目,支持 WebRTC P2P 直连,服务端仅负责 API、身份认证和 WebSocket 信令,不中转桌面视频流,大幅降低服务器带宽成本。项目支持 Cloudflare 免费套餐 部署,也可以使用 Docker 在 VPS 上自托管,内置 Windows 客户端、浏览器控制端、手机远程控制,支持 8 位设备 ID、OTP 一次性密码、永久密码、Ed25519 设备认证、JWT 身份验证、文件传输、剪贴板同步、自动重连 等完整功能。

306 阅读

要闻想自己搭建一个类似Chrome Remote Desktop 的远程桌面,又不想长期维护中继服务器?GsDesk 就是…

GsDesk 开源远程桌面教程:基于 Cloudflare Workers 或 VPS 自建,无需中继服务器,支持 WebRTC、浏览器远程控制(2026)

想自己搭建一个类似Chrome Remote Desktop 的远程桌面,又不想长期维护中继服务器?GsDesk 就是一个基于 Cloudflare Workers 或 VPS 的开源远程控制方案,支持 WebRTC P2P 直连,服务端只负责 API 和信令,不转发桌面画面,大幅降低服务器带宽成本。

76 阅读

要闻如果你不想依赖 Cloudflare,也希望把远程桌面平台完全部署在自己的服务器上,那么 GsDesk 同样支持 VP…

GsDesk VPS 自托管教程:Docker 部署开源远程桌面,支持 WebRTC P2P、浏览器远程控制

如果你不想依赖 Cloudflare,也希望把远程桌面平台完全部署在自己的服务器上,那么 GsDesk 同样支持 VPS 自托管。GsDesk 的 VPS 版本采用 Node.js + Hono + SQLite 构建后台,支持 Docker Compose 一键部署,提供 API、WebSocket 信令以及浏览器远程控制界面。整个协议与 Cloudflare 版本保持一致,只需一台 Linux VPS,就能快速搭建属于自己的远程控制平台。

81 阅读

常见问题

GsDesk 一键部署到 Cloudflare 需要创建哪些资源?

需要 D1(默认名 GsDesk)、KV(默认名 GsDesk,与 D1 同名但类型不同不冲突)、R2(默认名 GsDesk-files),以及 Durable Objects 的 DeviceRoom 和 SessionRoom,用于 WebSocket 信令。

GsDesk 部署完成后怎么验证是否成功?

访问根路径应看到纯文本 success,代表 API 健康;访问 /app/(默认路径)应能打开手机/浏览器控制界面;GET /api/health 会返回 JSON 并包含 web_app_entry 字段。

修改 WEB_APP_PATH(手机/浏览器控制入口路径)后需要做什么?

修改 wrangler.toml 里的 WEB_APP_PATH 后,必须重新执行 npm run build:web:app 再部署,否则会导致静态资源 404 或路由错乱。

手动部署 GsDesk 到 Cloudflare 需要执行哪些命令?

依次执行 git clone、npm install、npx wrangler login、npm run deploy:cloudflare。该命令会自动完成构建 Web 入口(build:web:app)、D1 远程迁移(db:migrate)和 wrangler deploy 三个步骤。

评价与回复

无需登录;审核通过后公开显示。