LibrePortal
Sponsor
Install

PairDrop

Local File Transfer

PairDrop is the quickest way to get a photo from your phone to your laptop. Open it in a browser on both, tap the other device, and the file goes straight across your home network, with nothing to install and no account.

On this page
  1. At a glance
  2. What it's good for
  3. Who you'll see
  4. Plain HTTP or HTTPS
  5. Putting it on your phone
  6. Good to know
  7. Addresses and ports
  8. Settings
  9. In its config file
  10. Works with
  11. Privacy and security
  12. What leaves this server
  13. What LibrePortal turns off
  14. Sources
  15. Under the hood

Good to know before you install

Pairing devices, notifications and installing PairDrop as an app need HTTPS in most browsers. Devices on different networks with no VPN between them may not connect directly, so turn on the outside STUN server setting if you need that

At a glance#

What it is
Local File Transfer Storage
Where it opens
Web Interface On its own port at http://your-server:port, or pairdrop.your-domain once you have a domain
Updates
Automatic A backup is taken first, and it rolls back if the update fails
Backups
Left out Not in the scheduled backups unless you switch it on
Copies
As many as you like Run several copies, each with its own data

What it's good for#

Moving a file between your own devices is oddly awkward when they aren't all made by the same company. Emailing it to yourself works, but slowly. PairDrop is like AirDrop for everything: Android, iPhone, Windows, Mac and Linux, in any modern browser.

Open PairDrop on two devices on your home network and they see each other straight away, each shown with a made-up name, a colour and an animal. Tap or click a device to send it files, or right-click (long-press on a phone) to send a text message instead, which is handy for a long link or a Wi-Fi password. The other person accepts, and it's done.

Nothing is stored on your server. PairDrop only introduces the two browsers to each other; the file itself goes directly between them. So there's nothing to back up, and nothing left behind afterwards.

Who you'll see#

PairDrop puts devices in the same "room" when they reach your server from the same network. Everything on your home network and everything on your LibrePortal VPN counts as one network, so your phone on the VPN at work still sees your laptop at home. It also means a guest on your Wi-Fi sees your devices while they have the page open, and you see theirs. Seeing each other isn't the same as trusting each other, though: a file only arrives when the other side accepts it, unless they've told PairDrop to accept everything from a device they've paired with.

For a device that isn't on your network, like a friend's phone on mobile data, PairDrop can pair two devices with a six-digit code or a QR code, so they find each other wherever they are. That needs HTTPS (see below).

When devices can't connect directly

Some networks, and some combinations of VPN and browser, stop two browsers connecting to each other directly. LibrePortal switches on PairDrop's fallback for this, so instead of failing, the transfer is relayed through your server. It's slower, and it passes through your server on the way, but it works, and it's your server.

Plain HTTP or HTTPS#

On a plain http://192.168.1.50:5123 address, the thing PairDrop is for works: devices on your network see each other and send files. Browsers keep a few extras back from pages that aren't on HTTPS, though, and PairDrop's own documentation lists them:

  • pairing devices so they remember each other
  • notifications when something arrives
  • installing PairDrop as an app on your phone or computer
  • changing your device's display name
  • the Copy button on a message you've received

Turn on HTTPS and those work too. With a domain, PairDrop answers at pairdrop.your-domain with a certificate every browser trusts. HTTPS without a domain also counts once you've accepted LibrePortal's certificate on that device, though installing it as an app can still be refused over a certificate the browser doesn't recognise. To check: check whether Chrome and Safari will install PairDrop as a PWA over LibrePortal's self-signed certificate once it has been accepted

Putting it on your phone#

With HTTPS on, open PairDrop in your phone's browser and use Add to Home Screen (Safari's share menu on iPhone, the browser menu on Android). It then opens like an app, full screen, and on Android it can appear in the share menu so you can send a photo straight from the gallery. On a computer, Chrome and Edge offer an install button in the address bar.

Good to know#

  • Open to anyone who can reach your server. That's harmless at home. If you've put it on a public domain, strangers who find the address could use your server to pass files between their own devices, with the fallback relaying through you. If that bothers you, make it private; your VPN devices keep working.
  • Updates are automatic, and there's no data to lose if one goes wrong.
  • You can run several copies, though one is plenty for a household.

Addresses and ports#

PairDrop has one port. LibrePortal picks a free port number for each when you install, so yours will differ from anyone else's. The Config tab's Network section shows them, and the app's Open button uses the right one. "Anyone" means it's reachable from wherever your server is reachable; you can make it private later.

What it isWho can reach itWith a domain
Web Interface Anyone pairdrop.your-domain

Settings#

In its config file#

PairDrop's own settings aren't on the Config tab yet. They live in the app's config file, described here so you know they exist. How to change them.

SettingWhat it doesStarts as
Name
CFG_PAIRDROP_DISPLAY_NAME
What this app is called on your dashboards. Leave empty to use its usual name Empty
Show on the LibrePortal Dashboard
CFG_PAIRDROP_SHOW_ON_DASHBOARD
Whether this app gets a shortcut on the front page of the LibrePortal WebUI, separate from any Dashy dashboard
Choices: true, false
true
Outside STUN server
CFG_PAIRDROP_PUBLIC_STUN
Whether browsers may ask Google's public STUN server for their network address, for faster transfers between different networks.
Choices: true, false
false
LibreSTUN
CFG_PAIRDROP_LIBRESTUN
Whether calls use this server's own STUN and TURN server (LibreSTUN) when it is installed; off keeps how this app made calls before
Choices: auto, off
auto

Works with#

These are the other apps PairDrop knows how to work with. Once it's installed, its page shows the same list with whether each one is connected. How this works.

  • LibreSTUN: Calls connect from anywhere through your own STUN and TURN server, with nothing going to Google. LibrePortal sets this up by itself when both are installed.
  • Grafana: Shows dashboards for the apps that have one. works with every app
  • Prometheus: Collects metrics from the apps that can export them. works with every app
  • Uptime Kuma: Watches your apps and shows when one goes down. works with every app

Privacy and security#

All clear PairDrop moves files directly between your devices. LibrePortal stops browsers asking a Google server for their network address.

What leaves this server#

Nothing leaves this server on its own.

What LibrePortal turns off#

  • Google's public STUN server (switchable in Config)

Licence: GPL-3.0. Audited: 21 October 2026. See the privacy of every app and the Promise.

Sources#

Under the hood#

  • It runs this image: ghcr.io/schlagmichdoch/pairdrop:v1.11.2@sha256:c4b30977264a76e335740089e693a52a0d0d616330dec7f93c7b96beef7b4a02.
  • It can sit behind Authelia's sign-in once Authelia is installed.
  • Its own project and documentation: github.com/schlagmichdoch/PairDrop

Ports, settings, tools and connections on this page are read from LibrePortal v0.10.97's app catalogue each time the guide is built.

Next steps