SnapDrop: An Open Source AirDrop for Everyone

What Is It?

If you've never heard of AirDrop, it's an Apple only file sharing capability that is extremely simple to use between Macs, iPhones, iPads, and any mix of those when they are in close proximity, or on the same network.

Ask any Apple based business, and they are likely to tell you it's one of those features that they use all the time.

SnapDrop is an open source version of AirDrop.  SnapDrop, however, runs on iOS, MacOS, Linux, Android, and Windows.  You simply set it up, open s browser, point it to your SnapDrop server, and start sharing files, photos, videos, and anything else you desire.

How Do I Get It?

To Install and run SnapDrop we will be using:

  • Docker
  • Docker-Compose
  • Github
  • NGinX-Proxy-Manager (optional, but suggested for iOS / Android function)
  • A domain name you can add an A record for, or a wildcard A record for.

I'll be listing instructions for Ubuntu / Debian based Linux distributions, but feel free to search for your preferred OS, as this server will run on any OS that can run Docker (Linux, MacOS, Windows, BSD).

To install Docker, I generally use the instructions as follows:

sudo apt update

sudo apt install apt-transport-https ca-certificates curl software-properties-common

curl -fsSL | sudo apt-key add -

sudo add-ap-repositry "deb [arch=amd64] bionic stable"

sudo apt update

apt-cache policy docker-ce

sudo apt install docker-ce

Then to not have to se sudo with the docker command, add your user to the docker group with:

sudo usermod -aG docker ${USER}

Now, log out and back in for thegroup change to take effect.

Next, let's install docker-compose.  We'll also want to make sure you have git installed so we can pull down the repository for SnapDrop. This is a single command:

sudo apt install docker-compose git -y

From here, we can pull down and run SnapDrop, and it will work for Linux to Linux, Windows to Linux machines, but MacOS may give you issues, and iOS and Android will not work without an SSL certificate setup properly.  That's where NGinX-Proxy-Manager comes in.

To install NGinX-Proxy-Manager, I"m going to refer you to my video instruction. It's not difficult, and if you've done the steps above, you're already most of the way there, but a video will be more helpful I believe. You can find it below.

Installing SnapDrop

First we'll clone the github repository for SnapDrop with the command below:

git clone

cd snapdrop

docker-compose up -d

That's it.  momentarily you'll have SnapDrop up and running (without SSL), but it will be up and running.

When the command completes, navigate to the IP address of the machine you've just installed SnapDrop on, at port should look like this in your browser bar Of course, use the IP address of your machine, the one I put in is just an example.

SnapDrop Running on Linux Browser

If you have two Linux machines you can open the address on each, and you should see the other machine appear in the UI.

My Phone / Tablet / Mac Doesn't See My Machine and Vice-Versa

If you want your iOS, Android, and Macs to all play nicely with SnapDrop, you'll need to add SSL certificates to the setup.

I recommend watching the video tutorial for installing SnapDrop to understand how to set this up.  It's quite straightforward.