PairDrop README

The project's README from github.com/schlagmichdoch/PairDrop. As one markdown file: README.md.

Logo

Send it, with PairDrop

Local file sharing in your web browser.
Inspired by Apple's AirDrop.
Fork of Snapdrop.

Report a bug
Request feature


Features

File sharing on your local network that works on all platforms.

Send a file from your phone to your laptop?
Share photos in original quality with friends using Android and iOS?
Share private files peer-to-peer between Linux systems?

Screenshot GIF showing PairDrop in use

Differences to the Snapdrop it is based on

View all differences

Paired Devices and Public Rooms — Internet Transfer

  • Transfer files over the Internet between paired devices or by entering temporary public rooms.
  • Connect to devices in complex network environments (public Wi-Fi, company network, iCloud Private Relay, VPN, etc.).
  • Connect to devices on your mobile hotspot.
  • Devices outside of your local network that are behind a NAT are auto-connected via the PairDrop TURN server.
  • Devices from the local network, in the same public room, or previously paired are shown.

Persistent Device Pairing

Always connect to known devices

  • Pair devices via a 6-digit code or a QR-Code.
  • Paired devices always find each other via shared secrets independently of their local network.
  • Pairing is persistent. You find your devices even after reopening PairDrop.
  • You can edit and unpair devices easily.

Temporary Public Rooms

Connect to others in complex network situations, or over the Internet.

  • Enter a public room via a 5-letter code or a QR-code.
  • Enter a public room to temporarily connect to devices outside your local network.
  • All devices in the same public room see each other.
  • Public rooms are temporary. Closing PairDrop leaves all rooms.

Improved UI for Sending/Receiving Files

  • Files are transferred after a request is accepted. Files are auto-downloaded upon completing a transfer, if possible.
  • Multiple files are downloaded as a ZIP file
  • Download, share or save to gallery via the "Share" menu on Android and iOS.
  • Multiple files are transferred at once with an overall progress indicator.

Send Files or Text Directly From Share Menu, Context Menu or CLI

Other Changes

Translate PairDrop on Hosted Weblate

Translation status

Built with the following awesome technologies:

FAQ

Host your own instance with Docker or Node.js.

Support

Buy me a coffee

PairDrop is libre, and always will be.
If you find it useful and want to support free and open-source software, please consider donating using the button above.
I footed the bill for the domain and the server, and you can help create and maintain great software by supporting me.
Thank you very much for your contribution!

Contributing

Feel free to open an issue or a pull request, following the Contributing Guidelines.

PairDrop (schlagmichdoch/PairDrop)

Searching Database…

11.6K ·GitHub
What is this?PairDrop is a web app for transferring files and text between devices on the same local network, inspired by Apple AirDrop and built as a fork of Snapdrop. It also supports pairing devices and joining temporary public rooms to transfer over the Internet.
Is this a desktop app or something I open in a browser?It is a progressive web app (PWA) that runs in any modern browser, with a Vanilla HTML5/JS/CSS frontend and a Node.js backend handling WebSocket signaling.
How do I start sharing files with it?Open PairDrop in a browser on two devices on the same network and they'll discover each other automatically; to run your own server, use Docker or Node.js.
What do I need to self-host a server?A Node.js environment (v15+) is required, and the server depends on express, ws, express-rate-limit, ua-parser-js and unique-names-generator; a Docker image is also provided.
Does file transfer work across the open Internet by default?By default transfers rely on local network discovery; to reach devices outside your LAN you need to pair them or join a public room, and devices behind NAT are auto-connected via PairDrop's own TURN server.
Who is PairDrop useful for?Anyone who wants to move files between phones, laptops and computers across different operating systems without installing an app or creating an account - e.g. sharing photos between Android and iOS, or files between Linux machines.
Can I run my own PairDrop server, e.g. on a Raspberry Pi?Yes, you can self-host PairDrop on your local network, for example on a Raspberry Pi, and configure your own STUN/TURN servers.
Is the connection peer-to-peer or does the server see my files?Transfers happen directly peer-to-peer via WebRTC; the Node.js server only handles signaling/discovery via WebSockets, not the file content itself.
How does persistent device pairing work?You pair two devices once using a 6-digit code or QR code; after pairing, the devices automatically find each other via shared secrets on any network, even after reopening the app, and pairings can be edited or removed.
What are public rooms used for?Public rooms let devices that aren't paired or on the same LAN connect temporarily by entering a shared 5-letter code or scanning a QR code, useful for one-off transfers over the Internet or complex networks like public Wi-Fi.
Can I send files without opening the web page first?Yes, PairDrop integrates with the OS share/context menu: send files directly from the right-click menu on Windows and Ubuntu (Nautilus), the Share menu on iOS/Android, or via a command-line interface.
How is PairDrop different from the original Snapdrop it forked?PairDrop adds persistent paired devices, temporary public rooms for Internet transfers, auto-downloading and ZIP bundling of multiple files, share/context-menu/CLI integration, display name customization, and a pure Node.js backend, among other stability and UI improvements.
Size
20.3 MB
Stars
11.6K
Updated
CommitApr 22
Age
3y
Commits · 90 Days