/peermesh

:dizzy: • Exchange files p2p and e2e encrypted over a fully meshed network in your browser using WebRTC.

Primary LanguageJavaScriptMIT LicenseMIT

peermesh

Start a fully meshed network by passing on the generated link and share files peer-to-peer and end-to-end encrypted powered by WebRTC!

  • Works fully in the browser using WebRTC.
  • Mesh swarms can be started by opening the site. A "mesh URL" is generated to be passed around.
  • The mesh URL contains a password. All files mesh will be sent end-to-end encrypted.
  • Swarms can be joined by opening the mesh URL.
  • Swarm form fully meshed networks (n:n) using webrtc-swarm.
  • WebRTC signaling data is exchanged via signalhub.
  • Swarm URLs can be bookmarked and reused. trust on first use: encryption keys
  • You see when the source code changes because of hyperboot. trust on first use: source code

Files will *not* be propagated among peers. The peers that initates a transfer will send the file to every connected peer individually.

Combining trust on first use both for encryption keys *and* source code will help you defeat Sauron!

Installation

git clone https://github.com/pguth/peermesh.git
cd peermesh
npm install

# You need a signaling server running:
npm install -g signalhub
signalhub listen -p 7000

# Now serve peermesh:
npm run build # and then open `public/index.html` in your browser or
npm start # to start the development server on `http://localhost:9966`

Related

  • peertransfer Peertransfer is a (1:n) WebRTC based file transfer tool. Compared to peermesh it encodes a authentication code into the "sharing URL" that is passed around and will not initiate WebRTC signaling if the code is missing or wrong.

Credits