Skip to content

perguth/peertransfer

Repository files navigation

Peertransfer

In-browser secure peer-to-peer filetransfer in three simple steps:

  1. Select the file you want to send.
  2. Open the generated link on other PCs.
  3. Download over a direct, authenticated and end-to-end encrypted line.

Thus the file will only be available for download as long as the sender keeps his browser tab open.

peertransfer

Features

  • Data is sent directly peer-to-peer.
  • Data is transferred using end-to-end encryption (due to WebRTC).
  • The messages that are relayed by a server to initiate the p2p WebRTC connections are encrypted (to protect against IP leakages and man-in-the-middle attacks while initiating WebRTC).

Install

A hosted instance of Peertransfer is available at https://perguth.github.io/peertransfer/

git clone https://github.com/pguth/peertransfer.git
cd peertransfer
NODE_ENV=production npm install
# You can also set HUB_URLS to a comma separated list of `signalhub` URLs:
npm start

Or you can use npm run build to generate static files.

Related

  • A variation of Peertransfer I wrote: peermesh
  • sharedrop "HTML5 clone of Apple's AirDrop - easy P2P file transfer powered by WebRTC"
  • ShareFest "Web based p2p file sharing built on WebRTC Data Channels API"
  • serverless-webrtc "A demo of using WebRTC with no signaling server."
  • WebTorrent "Streaming torrent client for node & the browser"
  • OnionShare "Securely and anonymously share a file of any size"
  • FilePizza "Peer-to-peer file transfers in your browser"
  • HTML/CSS of this project are forked from Creating a File Encryption App with JavaScript (license: "You can use, modify and build upon our code for your (or your clients’) personal and commercial projects with no attribution necessary.").