Cluster management
C++ JavaScript Cap'n Proto HTML Shell Makefile
Latest commit a32d716 Feb 6, 2017 @kentonv kentonv Fix readme

README.md

Blackrock

See the Blackrock roadmap for a design overview.

Running locally

WARNING: This runs six VMs, and the number may increase in the future. It also allocates disk images totalling 20GB, although they are sparse images so won't actually use that much space on your drive unless you use them a lot.

First, some prep:

  • This has only been tested on Debian Sid. On other distros, YMMV. (Patches welcome.)
  • You will need Vagrant installed.
  • If you want to build with modified version of Sandstorm, make sure that deps/sandstorm symlinks to your Sandstorm source tree. Hint: You can symlink deps to .. if Blockrock is checked out next to Sandstorm.
  • You may want to edit test-config.capnp to add your Stripe test key and Mailchip key, if you want to test those features. Otherwise, leave them commented out.

To run locally:

make run-local

This will take a very long time the first time it runs, but once all the VMs are up you'll be able to ctrl+C and re-run quickly.

Your instance will be accessible at: http://localrock.sandstorm.io:6080/

To create an admin token:

make local-admintoken

Then go to: http://localrock.sandstorm.io:6080/setup/token/testtoken

To get a Mongo shell:

make local-mongo

To shut down:

make kill-local

Running just the shell locally

Currently, Blackrock adds additional code to the Sandstorm shell to handle payments. Now that Blackrock is open source, we will soon move that module into Sandstorm proper, to simplify the codebase. For now, to test the payments code, you need to use run-dev.sh from inside Blackrock's shell directory. You need to make meteor-env before this will work.

Deploying

Please talk to us on sandstorm-dev.

If you are deploying on Google Compute Engine, this may be relatively easy. On any other infrastructure, a new ComputeDriver will be needed. See src/blackrock/gce.{h,c++} to see how this is implemented for GCE. Perhaps you'd like to contribute an implementation for another service?