Files
PrivyDrop/README.zh-CN.md
T
david_bai 200fc65617 build(docker): Intranet deployment is successfully tested using turn
- Switch all CLI examples to Docker Compose V2 (docker compose) for consistency.
  - Add explicit instruction to grant write permissions to the host logs/ directory (chmod 777 -R logs) to fix coturn/nginx bind-mount logging errors.
  - Parameterize TURN UDP port range via TURN_MIN_PORT/TURN_MAX_PORT and set a safer default 49152-49252 to reduce startup/cleanup overhead and port
  conflicts.
  - Update troubleshooting with coturn log write failure guidance and port conflict hints.
  - Clarify that LAN IP is auto-detected in private mode; --local-ip is no longer needed by default but remains as an override for edge cases.
2025-09-30 14:01:30 +08:00

137 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<div align="center">
<img src="frontend/public/logo.png" alt="PrivyDrop Logo" width="180" />
</div>
# PrivyDrop - 基于 WebRTC 的隐私安全文件分享工具
[English](./README.md)
[![开源协议](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
PrivyDrop (原 SecureShare) 是一个基于 WebRTC 的开源点对点(P2P)文件和文本分享工具。它无需服务器中转,所有数据在浏览器之间直接传输,确保端到端加密,为你提供极致的隐私安全保障。
我们相信,每个人都应掌控自己的数据。PrivyDrop 的诞生就是为了实现这一愿景:一个简单、快速、私密的分享解决方案。
[**在线体验 »**](https://www.privydrop.app/) | [**GitHub 仓库 »**](https://github.com/david-bai00/PrivyDrop)
---
![PrivyDrop 界面截图](frontend/public/HowItWorks.gif)
## ✨ 主要特性
- 🔒 **端到端加密**: 基于 WebRTC 的 P2P 直连技术,所有文件和文本在浏览器间直接传输,不经过任何中央服务器。
- 📂 **文件与文件夹传输**: 支持多文件和整个文件夹的传输。
- ⏸️ **断点续传**: 自动从中断处恢复文件传输。只需设置保存目录即可启用此功能,确保即使在网络不稳定的情况下,您的大文件也能安全送达。如果中断,目前需要同时刷新发送端和接收端网页,重新开始传输即可。
-**实时高效**: 实时显示传输进度、自动计算传输速度。
- 📝 **富文本剪贴板**: 支持在线编辑和发送格式化文本,不仅仅是文件。
- 🔗 **便捷分享**: 通过链接或二维码轻松分享房间,建立连接。
- 📱 **多端支持**: 响应式设计,支持桌面和移动端浏览器。
- 🌐 **国际化**: 支持中文、英文等多个语言。
## 🛠️ 技术栈
- **前端**: Next.js 14, React 18, TypeScript, Tailwind CSS, shadcn/ui
- **后端**: Node.js, Express.js, TypeScript
- **实时通信**: WebRTC, Socket.IO
- **数据存储**: Redis
- **部署**: PM2, Nginx, Docker
## 🚀 快速上手
### 🐳 Docker 一键部署 (推荐)
**零配置,5 分钟完成部署!支持内网使用,无需公网 IP。**
```bash
# 克隆项目
git clone https://github.com/david-bai00/PrivyDrop.git
cd PrivyDrop
# 生成配置(自动检测本机局域网 IP,已无需 --local-ip
bash docker/scripts/generate-config.sh --mode private
# 日志目录权限(coturn/nginx 外挂日志需要可写)
chmod 777 -R logs
# 一键部署(Compose V2
bash deploy.sh --mode private
# 访问应用
# 前端: http://localhost:3002
# 后端: http://localhost:3001
```
**部署优势**:
- ✅ 部署时间: 60 分钟 → 5 分钟
- ✅ 技术门槛: Linux 运维 → 会用 Docker 即可
- ✅ 环境要求: 公网 IP → 内网即可使用
- ✅ 成功率: 70% → 95%+
详见: [Docker 部署指南](./build/docker/README.md)
### 💻 本地开发环境
在开始之前,请确保你的开发环境已安装 [Node.js](https://nodejs.org/) (v18+), [npm](https://www.npmjs.com/) 以及一个正在运行的 [Redis](https://redis.io/) 实例。
1. **克隆项目 & 安装 redis**
```bash
git clone https://github.com/david-bai00/PrivyDrop.git
cd PrivyDrop
sudo apt-get install -y redis-server
```
2. **配置并启动后端服务**
```bash
cd backend
npm install
# 复制开发环境变量文件,然后根据需要修改 .env.development
cp .env_development_example .env.development
npm run dev # 默认启动于 http://localhost:3001
```
3. **配置并启动前端应用** (在新的终端窗口中)
```bash
cd frontend
pnpm install
# 复制开发环境变量文件,然后根据需要修改 .env.development,删除可选项
cp .env_development_example .env.development
pnpm dev # 默认启动于 http://localhost:3002
```
4. **开始使用**
在浏览器中打开 `http://localhost:3002` 即可访问应用。
## 🗺️ 路线图
我们制定了一份公开的路线图,其中概述了项目的未来愿景和当前的工作重点。你可以通过它了解我们正在进行的工作,或是寻找可以贡献力量的地方。
➡️ **[查看项目路线图](./ROADMAP.zh-CN.md)**
## 📚 文档
我们提供了详尽的文档来帮助你深入了解项目的设计和部署细节:
- [**项目整体架构**](./docs/ARCHITECTURE.zh-CN.md): 了解 PrivyDrop 系统各个组件如何协同工作。
- [**前端架构详解**](./docs/FRONTEND_ARCHITECTURE.zh-CN.md): 深入探索前端的现代化分层架构、基于 Zustand 的状态管理,以及解耦的服务化 WebRTC 实现。
- [**后端架构详解**](./docs/BACKEND_ARCHITECTURE.zh-CN.md): 深入探索后端的代码结构、信令流程和 Redis 设计。
- [**部署指南**](./docs/DEPLOYMENT.zh-CN.md): 学习如何在生产环境部署完整的 PrivyDrop 应用。
## 🤝 参与贡献
我们热烈欢迎任何形式的贡献!无论是报告 Bug、提出功能建议、提交代码还是加星,都对 PrivyDrop 的成长帮助巨大。请阅读我们的 [**贡献指南**](./.github/CONTRIBUTING.zh-CN.md) 来开始你的贡献之旅。
我们制定了所有贡献者都应遵守的 [**行为准则**](./.github/CODE_OF_CONDUCT.zh-CN.md),请在参与前仔细阅读。
## 📄 开源协议
本项目采用 MIT 协议,详情请见 [LICENSE](./LICENSE) 文件。