October 14, 2015

Syncloud: personal services device

Project overview

Syncloud is open source software which allows users without any technical knowledge to have popular services running at home on cheap hardware like raspberry pi with UI similar to modern mobile app store solutions. With almost one click install within seconds user can have complex services like ownCloud ready for use otherwise impossible to install without an admin friend with experience.


Usual scenario includes buying a single board computer with preinstalled syncloud or manually flashing downloaded board image to an existing device. After attaching device to a home wifi network preferably with a network cable and powering on it can be discovered with syncloud mobile app using either Android or iPhone.


User is then offered to select a domain name under syncloud.it so it can be accessed outside of home. This is done with DNS server to circumvent dynamic IP inconvenience, all data goes directly from user to his device.


When device is discovered and saved it is ready for app installations. Syncloud mobile application will save user device details for quick access otherwise it can be accessed from personal page on syncloud.it which shows user activated domain names.


Device main Web UI offers simple responsive navigation to access app store, installed apps and system settings. Currently user can attach external hard drive and use all its space inside apps.

Current state

We have started this project about two years ago and it is has gone through several major architectural changes before we came to more or less stable form as we see it right now. Instead of adding more apps we have concentrated on just one (ownCloud) to design the platform and try different packaging approaches. Currently we package apps as copy-deployable independent archives similar way it is done for modern mobile platforms.


We also support several major single board computers like raspberry pi and beagle bone black. Image building process is another interesting area and we call it extract-merge. We have a set of scripts and a build server which can produce syncloud image specific to any single board computer given a base (original) image usually with two partitions. Build server will extract bootloader and first partition and simply attach them to our root file system with needed kernel modules taken from the base image.


Now we are ready to add more apps like mail server, social network node and many more.



The original idea came from the simple need for storing personal images with easy access from any device; and observation that current state of the internet is very centralized. After thinking about this a little bit more we have realized that today’s internet is all about proprietary centralized services probably built on top of open source software. I think this is at least not very promising way of software evolution.


I would like to see more open and distributed internet and that is why I am doing this project.


Imagine having social network node truly personal, your data, your device, you decide who to give access and who to revoke. Same story for email server and many others.


Key driver here is usability.

System contains two main parts: on-device software (Platform) and public dns server (Redirect) to host its domain name. Device regularly updates its DNS record and also maintains public access port on home router using UPnP protocol.


Platform contains application manager (Sam) and a set of system tools hidden under Web UI.


Platform itself is written on Python and uses uWSGI webserver with Flask web framework. Recently we have added an LDAP server so users automatically get same credentials on each app they install.


Applications on the other hand can use any technology out there, for example ownCloud uses NginX, PHP and postgresql

Users do not have to pre-configure apps as it is usually very complex instead we make all needed decisions beforehand.


As we all know making end user product is very resource consuming process especially when open source project is not your day job. As a result we came with an idea of combining free nature of software and commercial nature of hardware end product. So we try to sell preconfigured devices.


Give it a try and tell us about your experience.


Syncloud website

Questions: support at syncloud.it


Click Here!