ITADN
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Blaze - 一个 P2P 文件共享 Web 应用 ⚡

Blaze - Fast peer to peer file sharing web app ⚡ | Product Hunt Embed Digital Ocean

Blaze 是一款文件共享渐进式 Web 应用(PWA),允许用户在多台设备之间传输文件。 它的工作原理类似于 SHAREit 或 Google 的 Files 应用,但使用 Web 技术来消除为不同设备和操作系统安装 原生应用的过程。它还支持同时与多台设备进行即时文件共享,这是许多文件共享应用所缺乏的。

Blaze 主要使用 WebTorrent 和 WebSockets 协议(作为回退方案)在多台设备之间传输文件。通过 WebTorrent 共享的文件是点对点的(因为它们内部使用 WebRTC),这意味着发送方和接收方之间直接传输,无需任何中间服务器。请注意,WebTorrent 中使用了 tracker 服务器,它们携带元数据并促进文件传输,但不会以任何形式获取完整文件。

功能

  • 💡 无需创建账户或注册。
  • 🚀 支持一对一和一对多文件传输。
  • 🔮 可跨不同网络和设备使用。
  • ⚡ 易于使用,且无需安装应用程序。
  • 📱 提供 PWA 以实现设备级集成。

试一试!

  • 访问 Blaze 的已部署客户端 - https://blaze.now.sh
  • 设置一个基本昵称(此信息不会存储在任何服务器上)
  • 创建一个新房间。房间是同伴必须加入以在彼此之间共享文件的地方。
  • 在另一台设备上,按照上述步骤加入同一个房间。(请确保使用不同的昵称)
  • 你的两台设备都应该显示出来。现在开始共享一些文件吧!

阅读更多关于 Blaze 基本工作原理的内容,请参见这篇 Medium 文章

部署你自己的 Blaze 实例

Deploy to DO Deploy

阅读更多关于 在自有服务器上部署 的内容

赞助商

Blaze 由以下机构赞助:

构建过程

  • 对于前端,webpack 通过 preact-cli 在内部进行配置。可以在 preact.config.js 文件中进行修改。
  • 对于后端,使用 sucrase 将 ES 模块的导入/导出转换为 CommonJS。
环境变量

可以在构建过程中设置以下环境变量:

variabledescriptiondefault
client如果使用 Docker,client 的变量应设置为构建参数。
WS_HOST运行 Blaze WebSockets 服务器的服务器 URL。'ws://<your-local-ip>:3030'
SERVER_HOST运行 Blaze HTTP 服务器的服务器 URL。'http://<your-local-ip>:3030'
WS_SIZE_LIMIT通过 WebSockets 传输文件时的最大文件大小限制(以字节为单位)。100000000 (100 MBs)
TORRENT_SIZE_LIMIT通过 WebTorrent 传输文件时的最大文件大小限制(以字节为单位)。700000000 (700 MBs)
server
ORIGIN允许 CORS 的字符串 URL 数组。*
PORT服务器运行的端口。3030
WS_SIZE_LIMIT通过 WebSockets 传输文件时的最大文件大小限制(以字节为单位)。100000000 (100 MBs)
DISABLE_SSE_EVENTS禁用服务器端事件以减少长连接。false
TRUST_PROXY服务器是否位于可信代理之后,并且可以读取转发的 IP。独立部署时为 false,docker-compose 中为 true

注意: 环境变量中的任何 URL 都不应以 / 结尾。

在生产环境中运行 Blaze

使用 Docker 和 docker-compose 可以轻松地将 Blaze 部署到您自己的服务器上。前端和后端完全解耦。

Docker 镜像

以下 Docker 镜像可用:

  • Blaze Server:这是用于 WebSocket 通信的后端 Node.js 服务器。可以在前文中为服务器列出的环境变量传递给容器。它暴露端口 3030

  • Blaze Client: 这是 Blaze 的前端渐进式 Web 应用,供客户端用于共享文件。Nginx 被用作此静态生成前端的 Web 服务器。上述列出的环境变量必须在构建镜像时作为 ARGS 传递。前端容器暴露端口 80

  • Blaze: This is a higher level image that includes both Blaze Server and Blaze Client images above. It must be used when docker-compose is not available in the environment, or there is a limit to run only a single container. docker-compose must be used to run Blaze in other cases which is explained in next section.

    Running high level Blaze image
    docker run -p 8080:80 -p 3030:3030 -e PORT=80 akashhamirwasia/blaze:latest

    NOTE: The PORT environment variable and the container port should be the same.(In the above example, it is set as 80).

使用 docker-compose

本项目根目录下存在一个 docker-compose.yml 文件,该文件用于运行服务器和客户端容器,并在 Nginx 配置中为前端的 WebSocket 连接设置代理。使用 docker-compose 运行:

git clone https://github.com/blenderskool/blaze
cd blaze
docker-compose up -d

通过 Node.js 直接运行

构建前端

npm run build:fe

前端构建后的代码将位于 client/build 目录中。

启动服务器和前端应用

npm start

现在可以通过端口 8080 访问 Blaze 应用 :tada:

隐私与分析

  • Blaze 服务器不会跟踪或记录通过 WebSocket 和 WebTorrent 共享的文件。
  • 任何与用户相关的数据(如昵称、房间名称)始终存储在设备上,仅在用户加入房间进行文件共享时与服务器共享。
  • Blaze 客户端使用 Google Analytics 4 记录以下内容:
    • 基本访问数据 的一部分 - 页面浏览量、滚动和出站点击,其余已禁用。
    • 设备上是否安装了 Blaze PWA,以及是否使用共享目标共享文件。

贡献

有关贡献的文档可在 CONTRIBUTING.md 中找到

许可证

Blaze 采用 MIT 许可证