About The Locker Project

A Locker is a container for personal data, which gives the owner the ability to control how it's protected and shared. It retrieves and consolidates data from multiple sources, to create a single collection of the things you see and do online: the photos you take, the places you visit, the links you share, contact details for the people you communicate with, and much more. It also provides flexible APIs for developers to build rich applications with access to all of this information.

Our Vision

As we go through our lives we create vast amounts of data. Emails, phone calls, social network posts, photos, utility bills, health monitoring devices, text messages, browsing data, purchase receipts and more are all born out of the regular course of our actions. It's more than just data. It represents our actions, interests, intentions, communications, relationships, locations, behaviors and creative and consumptive efforts.

Currently, our data is scattered everywhere. It lives in and is usually owned by the various networks into which it was created or exchanged. It's aggregated by third party trackers and targeters looking to deliver advertising, content and services to you. Billions of dollars are exchanged, industries built upon and value created off of our data, and it serves as the basis and is the foundation for some of the largest power structures on the web, and in the world at large.

Meanwhile, the people who have benefited least from this ecosystem are the very people originating the data. Often times, in fact, these channels and organizations go out of their way to limit our ability to extract our data from the network and reuse our own content. Limitless opportunities for engaging personalized applications and web experiences, as well as more free and open communication are lost when this happens.

Demo

Coming soon. Meanwhile, here are some screenshots:


Download

Locker is under active development, so it's not for the faint of heart. There are no releases yet, but the latest code is always available in our git repository.

System Requirements

We develop on MacOS Lion and Ubuntu 11.10 (oneiric). Other recent versions of those operating systems should work. Windows is not currently supported.

Quick start

  1. To get Locker, you'll need git. If any other prerequisites are missing, the build system can optionally try to install them into the source tree for you. Just follow the prompts.

        git clone https://github.com/LockerProject/Locker.git
        cd Locker
        git submodule update --init
        make
            
  2. Next, you'll need to get API keys for any services you wish to connect to:

        cp Config/apikeys.json.example Config/apikeys.json
        # See https://github.com/LockerProject/Locker/wiki/GettingAPIKeys
        vi Config/apikeys.json
                    
  3. You can now start up the locker:

        ./locker
            
  4. To access it, go to http://localhost:8042

Alternative, not-so-quick start

If you prefer to set everything up manually, or just want to understand more about the process, check out the detailed set up instructions.

Get Involved

Where to find us

You can find us on IRC at #lockerproject on irc.freenode.net or take a look through the logs to see what people have been talking about. We're on Twitter as @lockerproject. We also have a blog.

Under the Hood

The locker runs primarily under node.js, and so we use npm to manage Node module dependencies.

The code, wiki and issues on Github are all great places to get your hands on the code and familiar with the architecture of the system. We try to be as responsive as possible to pull requests and issues, so feel free to fork and hack!

The source tree is organized as follows:

Connectors
These modules connect to a data source like Facebook or Flickr, and retrieve data to store in the locker. Each connector provides a "synclet" to do this work.
Collections
Each collection provides a unified view of a certain data type, such as Photos or Contacts or Places. It brings together data from all available sources, identifies duplicates, and so on.
Apps
An app provides a user interface to work with data in the locker. The dashboard itself is also an app.
Config
API keys and configuration settings are stored here.
Me
This is where the actual data is stored, organized by which module owns it.
test and tests
To run the whole test suite, use make test.

Future

The Locker Project will use Telehash to create a peer to peer network between lockers, which will be used to enable person to person sharing regardless of where the locker is running.