PairDrop项目自托管部署完全指南
2025-07-07 02:47:09作者:温玫谨Lighthearted
前言
PairDrop是一款基于WebRTC技术的点对点文件传输工具,允许用户在局域网或互联网环境下快速分享文件和文本内容。本文将详细介绍如何自托管部署PairDrop项目,包括Docker部署、Node.js原生部署、环境变量配置以及相关服务器设置等内容。
核心组件要求
TURN服务器配置
要实现跨网络传输,必须部署自己的TURN服务器。TURN服务器在NAT穿透失败时充当数据中继,是WebRTC通信的关键组件。
推荐两种部署方式:
- 直接在系统上安装coturn
- 通过Docker容器部署coturn
安全部署建议
HTTPS强制要求
某些浏览器功能必须通过TLS安全连接才能正常工作,包括:
- 通过"复制"按钮复制传入消息
- 安装为PWA应用
- 设备持久配对
- 显示名称修改
- 通知功能
Docker部署方案
官方镜像部署
docker run -d --restart=unless-stopped --name=pairdrop -p 127.0.0.1:3000:3000 linuxserver/pairdrop
自定义构建镜像
- 构建镜像:
docker build --pull . -f Dockerfile -t pairdrop
- 运行容器:
docker run -d --restart=unless-stopped --name=pairdrop -p 127.0.0.1:3000:3000 -it pairdrop
Docker Compose部署示例
version: "3"
services:
pairdrop:
image: "linuxserver/pairdrop:latest"
container_name: pairdrop
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- WS_FALLBACK=false
- RATE_LIMIT=false
- RTC_CONFIG=false
- DEBUG_MODE=false
- TZ=Etc/UTC
ports:
- "127.0.0.1:3000:3000"
Node.js原生部署
- 克隆项目并安装依赖:
npm install
- 启动服务:
npm start
生产环境启动命令
npm run start:prod -- --localhost-only
此命令会:
- 启用自动重启
- 启用请求速率限制
- 仅允许本地连接
关键环境变量配置
调试模式
DEBUG_MODE="true"
启用后会输出客户端IP调试信息,用于验证代理配置是否正确。
请求速率限制
RATE_LIMIT=1
限制客户端5分钟内最多1000次请求。需要根据实际代理层级调整数值。
WebSocket回退
WS_FALLBACK=true
当WebRTC连接不可用时启用WebSocket回退,但会牺牲端到端加密特性。
STUN/TURN服务器配置
RTC_CONFIG="rtc_config.json"
示例配置文件:
{
"sdpSemantics": "unified-plan",
"iceServers": [
{
"urls": "stun:stun.l.google.com:19302"
}
]
}
反向代理配置
必须配置反向代理设置X-Forwarded-For
头部,否则所有客户端将相互可见。
Nginx配置示例
server {
listen 443 ssl http2;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Connection "upgrade";
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Forwarded-for $remote_addr;
}
}
Apache配置示例
<VirtualHost *:443>
ProxyPass / http://127.0.0.1:3000/ upgrade=websocket
ProxyPassReverse / http://127.0.0.1:3000/
</VirtualHost>
Coturn与PairDrop集成部署
- 准备SSL证书并创建ssl目录
- 生成DH参数文件:
openssl dhparam -out ./ssl/dhparams.pem 4096
- 配置turnserver.conf和rtc_config.json文件
- 启动服务:
docker compose -f docker-compose-coturn.yml up -d
防火墙配置
需开放以下端口:
- 3478 TCP/UDP
- 5349 TCP/UDP
- 10000-20000 TCP/UDP
开发环境搭建
开发相关文件位于./dev目录,可使用docker-compose快速搭建开发环境。
最佳实践建议
- 生产环境务必使用HTTPS
- 合理配置速率限制防止滥用
- 定期检查TURN服务器性能
- 监控服务器资源使用情况
- 保持PairDrop版本更新
通过本文的详细指导,您应该能够成功部署自己的PairDrop实例,并根据实际需求进行定制化配置。