# Snapdrop — Local File Sharing PWA via WebRTC > A progressive web app for instant peer-to-peer file sharing on your local network, inspired by Apple AirDrop. ## Install Save in your project root: # Snapdrop — Local File Sharing PWA via WebRTC ## Quick Use ```bash # Self-host with Docker docker run -d -p 3000:3000 linuxserver/snapdrop # Or visit the public instance at snapdrop.net ``` ## Introduction Snapdrop is a progressive web app that enables peer-to-peer file sharing between devices on the same local network. It uses WebRTC for direct device-to-device transfers with no file size limits, no uploads to external servers, and no account required. Open it in a browser on any device and start sending files. ## What Snapdrop Does - Automatically discovers other Snapdrop-enabled devices on the same local network - Transfers files directly between browsers using WebRTC data channels - Sends short text messages between devices via the same interface - Works on any device with a modern browser including phones, tablets, and desktops - Operates as a PWA installable on home screens for quick access ## Architecture Overview Snapdrop uses a lightweight Node.js signaling server that helps devices on the same network discover each other via WebSocket connections. Once two peers are connected, the signaling server brokers a WebRTC handshake. After that, all file data flows directly peer-to-peer through WebRTC data channels, never touching the server. The server only sees device metadata for discovery purposes. ## Self-Hosting & Configuration - Deploy with Docker using the linuxserver/snapdrop image or clone the repo and run with Node.js - The server requires only Node.js and npm with no database or external dependencies - Configure the listening port via environment variables; default is port 3000 - Place behind a reverse proxy like Nginx or Caddy for HTTPS, which is required for WebRTC on most browsers - Network isolation ensures only devices on the same subnet see each other ## Key Features - Zero-config peer discovery using local network broadcast via WebSocket rooms - End-to-end transfer with no server-side file storage or cloud dependency - No file size limit since transfers happen directly between browsers - Cross-platform support across Windows, macOS, Linux, iOS, and Android browsers - Lightweight server footprint suitable for Raspberry Pi or any small host ## Comparison with Similar Tools - **PairDrop** — community fork of Snapdrop with additional features like room-based sharing and multi-file transfer improvements - **LocalSend** — native desktop and mobile app using a custom protocol; requires installation rather than a browser - **AirDrop** — Apple-only; Snapdrop works across all operating systems and browsers - **KDE Connect** — Linux-centric with Android support; Snapdrop is fully browser-based and platform-agnostic - **Wormhole** — cloud-relayed encrypted transfer; Snapdrop is local-only with no cloud involvement ## FAQ **Q: Do files pass through the Snapdrop server?** A: No. The server only handles device discovery. Files transfer directly between browsers via WebRTC. **Q: Does Snapdrop work across different networks?** A: By default it only discovers devices on the same local network. For cross-network sharing, you would need a TURN relay server. **Q: Is there a file size limit?** A: No hard limit. Transfer speed depends on your local network bandwidth and browser memory. **Q: Can I use Snapdrop without self-hosting?** A: Yes. The public instance at snapdrop.net is available, though self-hosting gives you full control and privacy. ## Sources - https://github.com/SnapDrop/snapdrop - https://snapdrop.net --- Source: https://tokrepo.com/en/workflows/asset-0a57faef Author: AI Open Source