A core foundation for rich Web applications.


Note: This README is out-of-date for Bedrock 0.3+.

Bedrock helps you launch your ideas faster by bundling all the best-of-breed tooling that's necessary to build a modern, scalable Web app. It can run on a low-powered laptop all the way up to enterprise servers serving tens of millions of transactions per day.

Bedrock runs on Linux, Mac OS X, and Windows. It uses node.js + Express3 + MongoDB for the server backend while utilizing HTML5 + Bootstrap3 + AngularJS for the front-end. It has REST APIs, user account management, strong cryptography support, DoS protection, digital signatures, Linked Data, and tons of other FEATURES that are active by default. If you don't need all the fancy features, Bedrock is modular, so you can use only the modules you want.

You can follow the following tutorial to setup and use Bedrock on a Linux or Mac OS X development machine.

  • Linux or Mac OS X (also works on Windows with some coaxing)
  • node.js >= 0.10.x
  • npm >= 1.4.x
  • mongodb ~= 2.4.x (optional, but strongly recommended)
  1. Setup an admin user on mongodb (see below)
  2. Map the hostname to your machine (see below).
  3. git clone
  4. cd bedrock && npm install
  5. [optional] Tweak config settings in configs/dev.js

To setup an admin user on mongodb:

  1. mongo
  2. use admin
  3. db.addUser( { user: "admin", pwd: "password", roles: [ "clusterAdmin", "readWriteAnyDatabase", "userAdminAnyDatabase", "dbAdminAnyDatabase"] } )

To setup the hostname:

  1. Edit the /etc/hosts file as the administrator/root.
  2. Add an entry mapping the IP address to For example: (where is the IP address of your primary network device.

Run the following to start up a development server from the source directory:


To add more verbose debugging, use the --log-level option:

node --log-level debug

To access the server:

  1. Go to:
  2. The certificate warning is normal for development mode. Accept it and continue to the landing page.
  3. Login as the admin admin with the password password or create a new account.

Install protractor (before first test run):

npm run install-protractor

Run all backend and frontend tests:

npm run test

Run just the backend tests:

npm run test-backend

Run just the frontend tests:

npm run test-frontend

Run a specific frontend test suite:

nodejs test.js --frontend --suite unit
npm run coverage

Look at 'coverage.html' using a web browser

npm run minify

To test in dev mode, set the website config var 'minify' to true.

nodejs create-credentials.js

Save the generated private key and certificate PEMs in the appropriate files (in ./pki/ if using the default config).

For a complete list of features included in Bedrock, see the FEATURES file.

See the FAQ file for answers to frequently asked questions.

See the CONTRIBUTING file for various details for coders about hacking on this project.

See the AUTHORS file for author contact information.

Bedrock and all Bedrock modules are:

Copyright (c) 2011-2015 Digital Bazaar, Inc.
All Rights Reserved

You can use Bedrock for non-commercial purposes such as self-study, research, personal projects, or for evaluation purposes. See the LICENSE file for details about the included non-commercial license information.