Skip to content

Repository files navigation

ZestSend

ZestSend 是一个开源的 WebRTC 点对点连接网页工具,可自行部署在 Cloudflare 上。

支持端对端加密的匿名实时聊天、文件互传、语音通话、视频通话、屏幕共享、同播共享、文本协作、画板等功能,支持点对点直连或 Cloudflare TURN 中转。

无任何账号 / 数据记录机制、完全匿名,两位参与者输入相同的四位房间号后即可连接。直接使用 Cloudflare 部署,即可建立点对点直连连接。配置 Cloudflare TURN 服务器后,可每月免费获得 1000GB 中转连接流量。

延续并改进了 RavelloH/TimePulse 的玻璃态设计美学。

部署

Fork 本仓库后,在 Cloudflare Dashboard 的 Workers & Pages 中依次选择 Create applicationImport a repository,选择自己的 Fork 并完成 GitHub 授权。

在部署设置中保留 Worker 名称为 zestsend(需与 wrangler.jsonc 一致),选择 main 作为生产分支,并设置:

配置
Package manager pnpm
Build command 留空
Deploy command pnpm deploy

可选:配置 Cloudflare TURN

未配置 TURN 时,应用仍会使用公共 STUN 尝试直连;如需在受限网络中使用中继,请先在 Cloudflare Dashboard 的 RealtimeTURN 创建凭证,然后在已部署 Worker 的 SettingsVariables and Secrets 中添加两个 Secret

名称
TURN_ID TURN 凭证的 Key ID
TURN_TOKEN TURN 凭证的 API Token

后续更新时,在 GitHub 通过 Sync fork 拉取上游提交并合并到 main;Cloudflare 会自动构建并部署。

预览

前往 https://send.ravelloh.com 查看效果。

image image image image image image image image image image image

技术栈

  • Cloudflare Workers、Durable Objects、Realtime TURN
  • Hono、Wrangler、Cloudflare Vite Plugin
  • 原生 WebRTC 的 RTCPeerConnectionRTCDataChannel、MediaStream
  • React、Vite、TypeScript、Tailwind CSS、TanStack Router
  • Tiptap、Yjs
  • Framer Motion

本地开发

pnpm install
pnpm dev

打开 http://127.0.0.1:8787

可选的 Cloudflare TURN 配置写入 .env

TURN_ID=your_cloudflare_turn_key_id
TURN_TOKEN=your_cloudflare_turn_api_token

未配置 TURN 时,应用仍会使用公共 STUN 尝试直连;受限网络无法穿透时则不会启用中继。

许可证

本项目采用 MIT License

About

ZestSend 是一个开源的 WebRTC 点对点连接网页工具,可自行部署在 Cloudflare 上。 支持端对端加密的匿名实时聊天、文件互传、语音通话、视频通话、屏幕共享、同播共享、文本协作、画板等功能,支持点对点直连或 Cloudflare TURN 中转。

Topics

Resources

Contributing

Stars

118 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages