Locker - the "me" platform
This is an open source project that helps me collect all of my personal data, from wherever it is, into one place, and then lets me do really awesome stuff with it.
STATUS: eager-developer-friendly only at this point, we're working hard to make it usable for early adopters very soon, keep an eye on @lockerproject and @jeremie for progress, and come hang out with us on freenode IRC in #lockerproject.
The Fast Way
Lockerbox (by pib) is a straightforward way to get all the high-level dependencies installed at once. It will make a single directory called lockerbox and get everything set up inside of there.
curl https://raw.github.com/smurthas/lockerbox/master/lockerbox.sh > lockerbox.sh chmod 0755 lockerbox.sh ./lockerbox.sh
When that successfully completes, add lockerbox/local/bin to your path:
echo 'export PATH=$PATH:'`pwd`/lockerbox/local/bin >> ~/.profile source ~/.profile
cd lockerbox/Locker #check to make sure everything worked ./checkEnv.sh node lockerd.js
now open http://localhost:8042/ in your browser!
The "Real" Way
git clone https://github.com/LockerProject/Locker.git cd Locker
Then I can install dependencies (this may take a little while):
There are a few Python utilities that are used in the stack, so I'll run (this requires setuptools):
The I'll run the checkEnv.sh script to ensure I have everything install correctly:
To turn on my locker I run:
Then I go to to the dashboard:
To get started using the system, navigate to the 'Services' menu item, select an account to connect, and follow the instructions to start using that connector with your locker.
Detailed Installation Steps
If you haven't used node or mongo before, it's worth getting everything in place before cloning the repo:
It's easiest to just download the tarball. If you choose to build it from the github repo, you will need to checkout a tagged version v0.4.6 - v0.4.8.
Once it's downloaded:
#from the extracted directory ./configure #make will take a few minutes make make install
This will build node from source and install it, adding it to your PATH. To ensure that it worked:
node -v v0.4.8
You will need gcc and libssl-dev, but those should already be present on most systems. On linux systems, apt-get installation has caused problems for some folks (it can leave out node-waf, which causes issues installing modules later), so building from the tarball is the recommended method.
npm has very thorough installation instructions at https://github.com/isaacs/npm#readme. Note, node must be installed BEFORE npm.
Mongo has comprehensive installation instructions at http://www.mongodb.org/display/DOCS/Quickstart
Once you have it installed, ensure that it is in your PATH:
mongod --version db version v1.8.1, pdfile version 4.5
The version number just needs to be 1.4 or greater (however, we only test with 1.8+, so if you are on an old version, you might consider updating)
If not, you can add the following line to your ~/.profile file:
Many systems will already have setuptools installed, but if your doesn't, it can be found (along with installation instructions) here
If (you think) you've got everything all set:
git clone https://github.com/LockerProject/Locker.git cd Locker ./checkEnv.sh
you should see something like:
Python version 2.7 found. Node.js version 0.4.8 found. npm version 1.0.14 found. mongoDB version 1.8.2 found.
Your version numbers may vary slightly, but so long as you don't see any red text, you are all set. (At this point, the vows check has been disabled.) If vows gives an error:
sudo npm install -g vows
Then you can install all of Locker's node dependencies:
#from the Locker root directory npm install
At this point you should be all set (famous last words). Next, run the tests:
cd tests node runTests.js
On a good day, all these tests will pass, resulting in something like:
✓ OK » 222 honored (56.306s)
If, only a few fail, but it gets through the whole run, then chances are someone just broke something with a late night commit the previous evening. :).
What are these things?
- Connectors - A service that knows how to connect to and sync data with a place where I have data about myself, such as an account on a site or service, or in some desktop app, on my phone, or even from a device.
- Collections - My data from the many different sources gets organized into common collections, such as places, contacts, messages, statuses, links, etc.
- Apps - Once my data is in my locker I need apps that do useful or fun things for me, with the ability to control where my data goes and not have to give up access to my online accounts.
Once I "install" them in my locker (giving them some working space, a local port, and some config), I can browse to them where they provide their own instructions/steps (for now, it's early yet and pretty manual). To learn a bit more about the innards, I can install and run the Dev Docs app. :)
We need TONS of help and it's welcomed across the board, particularly in adding and advancing more of the connectors, just don a hard-hat and dig in, all patches welcomed, personal data FTW!
I am the platform.