/Peergroup

A P2P Shared Storage System based on XMPP - P2P Synchronization and Content Distribution

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

#Peergroup A P2P Shared Storage System based on XMPP

Copyright (c) 2012, 2013, 2014 Nicolas Inden

Peergroup empowers you to synchronize data across multiple computers. You can use it to share data with your friends, you can use it as a convenient way of distributing contents, or you can set it up across multiple of your own machines to automatically sync data between them. It is also possible to use it as a way to distribute your backup data across your servers. Peergroup distributes your data in P2P fashion without the need of a central storage facility. Thus, you can be sure that all your data is only distributed to the devices that are in the same Peergroup-Channel (which is basically a XMPP Multi-User-Chat).

Whatever your intention is, the first thing you need to do is to determine the circle of users you want to use Peergroup with. Every user needs an XMPP (also known as Jabber) account at his/her favourite server. At last, start Peergroup providing it with your XMPP account and a XMPP conference channel. Of course all users that want to share with each other need to join the same conference channel.

##This is awesome! Where can I get it? If you are interested in the source-code, simply clone the git-repository and proceed with the "Build & Run" section.

git clone https://github.com/smashnet/Peergroup.git Peergroup

If you just want to use Peergroup, you can download a .zip file containing Peergroup and a startscript in the Download section.

##Build & Run

###Build

  • cd into the Peergroup directory
  • ant

###Run

To reduce the commandline stuff a bit, Peergroup now reads all necessary information that it needs to start from a config file. After extracting the .zip package you have the files

peergroup.jar
pg-start
pg-start.bat
README.mdown
sample.cfg

together in a directory. If you are on Linux or OSX, make the pg-start script runnable:

chmod +x pg-start

Now you can enter the information of your XMPP account and the conference channel in the sample.cfg file.

All preentered values in the sample config are required and need to be changed. Empty fields are optional.

If you entered your information, rename the file from sample.cfg to peergroup.cfg, then start pg-start. Have fun using Peergroup :)

Remember: In order to sync between devices, all devices need to be in the same conference channel (have the same conference settings in peergroup.cfg)!

##Status

Please visit the Wiki to get the most recent infos about Peergroups progress.

##License Peergroup is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Peergroup is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

For a copy of the license see license.txt

Some of the used libraries in Peergroup are published under the Apache 2.0 license. They are used unchanged in Peergroup and stay under Apache license even as part of Peergroup.

##Contact