Today, we’re happy to be open sourcing the biggest piece of our Ubuntu One file syncing service.

The code we’re releasing is the server side of what desktop clients connected to when syncing local or remote changes.

This is code where most of the innovation and hard work went throughout the years, where we faced most of the scaling challenges and the basis on which other components were built upon.

We have released it under a AGPLv3 license and hoping it’s useful for developers to read through, fork into their own projects or pick out useful bits and pieces.

You can get the source code here: https://launchpad.net/filesync-server

FAQ

Cool! How do I start?

We put together a readme file that explains how to start a server and client.

Why won’t the client from the archive work?

The client from the archive required both SSO and pointed to a specific URL. We have made small changes to the client so it’s easy to set up and running against the server. There are no substantial differences from the client in the archives.

Why did it take so long to release?

Our engineering team was tasked with supporting the release of the phone and then the now announced Snappy project. The team cared deeply about open sourcing this code and spent time wherever they could spare in moving it forward, cleaning up the code so it would work enough outside of the very specific production environment and untangle it of some commercial code that was used at some point.

What else is left to release?

The bulk of what’s left is the code related to the website, REST APIs, contacts and music streaming.

When will you release it?

We will continue to work on preparing the code to release, but don’t have dates at this time. We continue to be committed to releasing all the code for the file syncing service.

Why AGPLv3?

We typically choose GPL and associated licenses for code that Canonical writes because we think the GPL provides the most freedoms for its users.

Do I have to sign a contributor agreement to modify the code?

No. This is no longer an active project, we are providing the code for public to read and use on their own.

Will you take patches?

In general, no. We won’t have anybody assigned to reviewing and accepting code. We’d encourage interested maintainers to fork the code and build out a community around it.

Can I fork this and start my own project?

Absolutely.