Skip to content
A P2P Shared Storage System based on XMPP - P2P Synchronization and Content Distribution
Java Other
  1. Java 99.6%
  2. Other 0.4%
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


#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 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


  • cd into the Peergroup directory
  • ant


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


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)!


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
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.


You can’t perform that action at this time.