File synchronization services like Dropbox have really taken off in recent time. They basically allow you to sync files between devices using cloud storage as buffer. Depending on the service, you get web access, document editing options, photo galleries, media streaming and more on top of that.
All services have in common that they encrypt the connection between your computer and the cloud host to protect the data from third parties that try to intercept or record what is being transferred. Each service has implemented its own scheme, and it is often difficult and sometimes even impossible to find out how the data is protected by the service.
Businesses face another issue, as regulations, company guidelines and maybe even laws may prevent them from using some or even all third-party services. Those decisions may be based on security regulations or something mundane like the location of the server the data is saved on.
For users, it is often a question of privacy and to a lesser extent one of control over the data.
Privately-hosted services can be a solution. While they are probably more appealing to webmasters, geeks and privacy advocates, they can prove to be a viable alternative for businesses as well. A self-hosted server gives you full control over the data, up to the point where you can simply log into the server’s admin dashboard or shell to delete all files remotely and unrecoverable.
The following guide looks at several different solutions that all allow you to sync local files with a self-hosted server. Another advantage of self-hosted solutions is that storage space is usually not limited to a few Gigabytes.
A word of caution: Not every web hosting company permits the use of storage space and its network infrastructure for purposes that are not linked to web hosting. It is recommended to verify that they are okay with it before you start synchronizing your data with their servers.
FTPBox is an open-source program that synchronizes files to an FTP server from where they are synchronized with all systems running the client software. The solution may be ideal for webmasters who have access to a web server or hosting account with FTP server. Alternatives are a local FTP server which can also be used for the purpose.
If you already have access to a FTP server, all that is left to do is install the client software on all systems that you want to sync files between. You are asked to supply the FTP server address, path, server login credentials, and the local root folder on first start.
A web interface is provided if PHP is installed on the server as well. Files can be downloaded directly though if that is not the case.
The program in its current stage has its issues and shortcomings. It is for instance only available for Windows, synchronization and bandwidth management are not available, and the web interface and sharing feature has issues of its own.
The developer seems dedicated, though, and many of the shortcomings should be ironed out in future releases. A Linux and Mac version are promised, with no word on mobile ports.
ownCloud is packed with features that makes it more than a capable rival of services such as Dropbox or Google Drive. The program requires a web server where the server-side components need to be installed on. It has a bunch of dependencies, like php 5.3 or up, php5-curl or libcurl3 which are all listed on the install page on the official website.
Installation should not be too difficult provided that the server is meeting all requirements and that you have permissions to install new software on the server. It all comes down to running two commands on the server to install ownCloud on it.
Clients are available for Windows, Linux and Mac, with options to synchronize calendar and address book data with Apple’s iOS.
As far as features go, there are plenty offered. Here is a short list of what it supports out of the box:
- Server encryption support and support for SSL connections
- Web access
- Data sharing
- Calendars, tasks, file viewers, video streaming
- Application store with first party and third party app support.
This project is still in development, and no release has been made by the developer so far. The project offers flexible options in terms of hosting your content. This includes hosting them locally, on FTP, SFTP or ssh, using an IMAP folder, WebDav, Windows Share, and various hosted solutions offered by Amazon, Google, Rackspace and others.
The first release will be for Linux, with Windows and Mac versions said to be following later in development. Syncany encrypts the data on the client-side before it is sent to the selected hosting solution.
Syncany supports file versioning, integration into the native file manager, and gives users the option to sync any folder on the system, and not only files and folders that reside in a root folder that the software creates during installation.
This is a service to look out for, even though development seems to have slowed down a notch recently.
This is a specialized solution for project hosting, management and collaboration. It is free and open source, and comes with clients for Linux, Windows (Vista and newer only) and Mac. Unlike other solutions, it concentrates on projects, and offers to synchronize files with popular code-hosting providers such as Github or Gitorious next to a self-hosted solution.
A custom host needs to have git and openssh-server installed. You can check the project website for a detailed tutorial on how to prepare a server. On the client side, you basically point it to that server, so that you can synchronize a local folder and all of its files with that server.
SparkleShare supports file versioning, a web interface which you can use to invite project members, and the synchronization of multiple projects.
The program has not been updated in a year’s time at the time of writing.
It takes resources to produce and maintain a self-hosted file synchronization solution. Several of the services that I looked at had — and did not include in the list — not been updated for some time, and even two I did include are not updated frequently yet.
The ownCloud service is one of the few technically mature services that you can start using right away.
What about you? Are you using a file synchronization service? If so, which are you using and why?