4.1 KiB
4.1 KiB
title: PairDrop created: 2026-06-08 updated: 2026-06-08 type: app tags: [catalogue, local-file-sharing, webrtc, typescript, app-marathon3-rattrapage-a] confidence: high contested: false sources: [https://selfh.st/apps/?tag=File+Sharing, https://pairdrop.net/]
🔗 PairDrop
Partage de fichiers P2P nouvelle génération : fork moderne de Snapdrop avec Docker, écran de room, notifications, et mode "public" pour Internet.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | pairdrop.net |
| GitHub | schlagmichander/PairDrop |
| License | GPL-3.0 |
| Langage | TypeScript |
| Étoiles GitHub | 6.5k ⭐ |
| Catégorie | [[cat-local-file-sharing |
📝 Description
PairDrop est le fork moderne de Snapdrop par schlagmichander, qui ajoute des fonctionnalités attendues : Docker natif, TURN server, QR codes, et mode "rooms" pour partager entre pairs à distance.
Fonctionnalités :
- ✅ P2P via WebRTC : pas de serveur de fichiers
- ✅ Mode "Same Network" : LAN-only (comme Snapdrop)
- ✅ Mode "Public" : utilise un TURN server pour traverser Internet
- ✅ Rooms : créez un salon et partagez le lien/QR code
- ✅ Pair via URL : envoyez un lien, le destinataire accepte
- ✅ Auto-pairing : basé sur le navigateur/IP
- ✅ Notifications web : push pour nouveaux pairs
- ✅ Historique des transferts
- ✅ Multi-fichiers et dossiers
- ✅ Self-hostable : Docker officiel
Différence vs Snapdrop original : PairDrop = Docker natif, TURN server intégré, rooms, notifications, sécurité durcie. Snapdrop = démo plus simple.
Pour qui : équipes distantes, freelances qui partagent avec clients, ateliers en présentiel, communautés en ligne.
🚀 Installation
Docker Compose (recommandé)
version: '3.8'
services:
pairdrop:
image: ghcr.io/schlagmichander/pairdrop:latest
container_name: pairdrop
restart: unless-stopped
ports:
- "3000:3000"
labels:
- "traefik.enable=true"
- "traefik.http.routers.pairdrop.rule=Host(`drop.example.com`)"
- "traefik.http.routers.pairdrop.tls.certresolver=letsencrypt"
environment:
- RTC_CONFIG_IPV4=stun.l.google.com:19302
- RTC_CONFIG_IPV6=stun.l.google.com:19302
Option : TURN server (pour le mode public)
version: '3.8'
services:
pairdrop:
image: ghcr.io/schlagmichander/pairdrop:latest
container_name: pairdrop
restart: unless-stopped
ports:
- "3000:3000"
environment:
- RTC_CONFIG_IPV4=turn:turn.example.com:3478
- RTC_CONFIG_IPV4_USERNAME=pairdrop
- RTC_CONFIG_IPV4_CREDENTIAL=changeme
depends_on:
- coturn
coturn:
image: coturn/coturn:latest
container_name: pairdrop-turn
restart: unless-stopped
ports:
- "3478:3478/udp"
- "3478:3478/tcp"
command: >
-n
--realm=turn.example.com
--user=pairdrop:changeme
--listening-port=3478
--no-tls
--no-dtls
🔄 Alternatives
Open Source
- app-snapdrop — original
- app-localsend — apps natives
- ShareDrop — concept originel
- WebWormhole — E2E chiffré
- Wormhole — CLI magic-wormhole
- Send — version Send spécifique
Propriétaires
- WeTransfer — cloud freemium
- Firefox Send — déprécié
- Send Anywhere — code à 6 chiffres
- Dropbox Transfer — jusqu'à 100 MB
🔐 Sécurité
- WebRTC DTLS : chiffrement E2E P2P
- TURN server : pour traverser les NAT en mode public
- Auth via room : code unique par session
- Pas de log serveur : conçu pour la vie privée
- HTTPS obligatoire : WebRTC
- Rate limiting : protection contre abus
- CSP headers : protection XSS
📚 Ressources
Pages Liées
- cat-local-file-sharing — Catégorie File Sharing
- app-snapdrop — Original
- recettes-docker-compose — Templates Docker