Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
This branch is 10 commits ahead, 2 commits behind stacksync:master.

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Welcome to StackSync!

NOTE: This is a fork of the main StackSync desktop client repository that supports Hybris as storage backend.

NOTE: This is BETA quality code!

Table of Contents


StackSync ( is an open source Personal Cloud that implements the basic components to create a synchronization tool.


In general terms, StackSync can be divided into three main blocks: clients (desktop and mobile), synchronization service (SyncService) and storage service (OpenStack Swift). An overview of the architecture with the main components and their interaction is shown in the following image.

The StackSync client and the SyncService interact through the communication middleware called ObjectMQ. The sync service interacts with the metadata database. The StackSync client directly interacts with the storage back-end to upload and download files.

As storage backend this version of StackSync supports both OpenStack Swift, and Hybris.

Desktop client

This repository contains desktop client code. StackSync client is a fork of the Syncany project developed by Philipp Heckel (

StackSync is an application that monitors local folders and synchronizes them with a remote repository. It interacts with both the synchronization and storage services. The first one handles metadata communication, such as time stamps or file names, and the second one is in charge of raw data.

Some of the main features of the client are:

  • Sharing: Share folders with other StackSync users.
  • Client side encryption: Upload your files encrypted.
  • Desktop integration: We are using Liferay nativity library.

* **Push notifications**: ObjectMQ provides push notification to desktop clients. * **Data deduplication**: We deduplicate data across a single user in order to optimize bandwidth and storage.


  • Java 1.7
  • Maven 2 (build)
  • A StackSync server installation running. Intallation instruction can be found here
  • A user initilialized in StackSync server.

Build, installation and execution

You just need to assemble the project into a JAR using Maven:

$ mvn assembly:assembly

This will generate a "target" folder containing a JAR file called "desktop-client-X.X-jar-with-dependencies.jar"

NOTE: if you get an error (BUILD FAILURE), cleaning your local Maven repository may fix the problem.

$ rm -rf ~/.m2/repository/*


Under the folder packaging/debian there is the Makefile to create the deb file.

$ cd packaging/debian
$ make compile
$ make package


We have a NSIS script that creates an installer (here). Of course, it requires NSIS to be installed in your system. build.xml can be configured to create the installer automatically.

The installer will create a folder in ~\AppData\Roaming\stacksync_client with the jars and the dependencies. It will also add a shortcut, install the overlays and make StackSync autoexecutable when Windows starts.

NOTE: You have to take into account that the default installer script will execute the Updater.jar instead of Stacksync.jar. This is because the updater will check for new updates and then it will launch StackSync. If you don't want to use the updater, you have to change the script.

NOTE 2: Our overlays only work fine on Windows 7. We have to fix them in Win XP and 8.

Mac OS

StackSync is fully functional on Mac OS, but it lacks desktop integration (no overlays and notifications aren't beautiful enough)

We don't have a dmg file, but we are working on it.

General execution

If you don't want to install StackSync in your computer, you can directly execute Stacksync.jar:

$ java -jar Stacksync.jar

You can add some parameters:

  • Daemon mode (-d): Runs StackSync with desktop integration.
  • Configuration file (-c): Load a config.xml file located at the given path.
  • Extended mode (-ext): Runs StackSync wizard and tray with more functionalities (SyncService panel, encryp panel, ...).
  • Help (-h): Shows help menu.

Issue Tracking

For the moment, we are going to use the github issue tracking.


StackSync is licensed under the GPLv3. Check license.txt for the latest licensing information.


Visit to contact information.


StackSync desktop client with Hybris as storage backend.







No packages published


  • Java 97.5%
  • Python 1.3%
  • NSIS 0.8%
  • Shell 0.2%
  • Makefile 0.2%
  • Batchfile 0.0%