Peer To Peer (P2P) Sync and Share Ubuntu

I want to Share files across my network and on remote sites, So i am looking for p2p Sync/sharing application. Just like Ubuntu One & Drop box , but it does not have p2p protocol.I want p2p because i want to save bandwidth on my local network.


Solution 1:

Syncthing

Blurb:

Syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet.

It's a file syncing app that is

  • free & open-source – unlike Dropbox/Resilio/AeroFS
  • secure – all communication is encrypted, nodes are authenticated using certificates
  • decentralized/P2P – there is no central server that can log things or go down when you least need it, each computer is its own server
  • simple – you don't need to remember IP addresses or get a domain name, you just enter the Syncthing-identifier of the computer you want to pair with and Syncthing figures out the details
  • portable – runs on Windows, Linux (including Ubuntu Touch), Mac, BSD, Solaris; there are also apps for Android and iOS.

enter image description here


Installation:

The official Syncthing app can be installed on Ubuntu like this:

curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
echo "deb https://apt.syncthing.net/ syncthing release" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt-get update
sudo apt-get install syncthing syncthing-inotify

To have it start for your user on startup, and start it immediately:

sudo systemctl enable syncthing@$USER.service
sudo systemctl start syncthing@$USER.service

You should now be able to open http://localhost:8384 and add folder shares, or other computers you want to share with. (Note: if you have several users, the other users will get different port numbers; check out the <gui>/<address> element in ~/.config/syncthing.config.xml where the address to the web gui is stored.)


There is also a GTK app for those who prefer a more traditional feel: https://github.com/syncthing/syncthing-gtk#syncthing-gtk

Solution 2:

Bittorrent Sync

It's still experimental, but Bittorrent Sync may be the thing you want. It's p2p and is well documented. Get all information here:
http://labs.bittorrent.com/experiments/sync.html

Bittorrent Sync works on Windows, Mac, BSD, Andoid, iOS and Linux (even on ARM and PowerPC processors).

I use it since a few months and can say it works reliable, even though we use it to collaborate between 3 users and more than 7 devices. One of them is a Raspberry Pi that is "always on". There are Repositories for Ubuntu and Debian with a server-version and a user version.
See here:

http://forum.bittorrent.com/topic/19560-debian-and-ubuntu-desktop-packages-for-bittorrent-sync/

Dropbox

Dropbox is not p2p and offers limited storage, but it supports local sync (=network sync) by default, so you'll save bandwidth on local networks. It also offers a command line tool, so you can use it on servers etc. It also offers version control via the webinterface.
https://www.dropbox.com/


Canonicals Ubuntu One does not support network sync yet:
https://bugs.launchpad.net/ubuntuone-client/+bug/375302