# Introduction

[NodeBootstrap](http://www.nodebootstrap.io) is a project skeleton generator tool, which allows you to start a new Node project with a lot of essential batteries included. Some of the features out of the box include:

1. Comfortable dockerized setup, with code hot-reloading out of the box.
2. Well-structured Express.js installation for writing modularized, clean code
3. Advanced setup for automated tests
4. Database Migrations
5. Input validation and error-handling
6. Multi-core support for high-performance node computing

## Installation

Installing NodeBootstrap is very easy. It is distributed as an NPM package so you need Node installed on your machine (we recommend using [nvm](https://github.com/creationix/nvm)). Once you have Node in place, installing Nodebootstrap is as easy as running;

```
npm install -g nodebootstrap
```

Once you have nodebootstrap in place, you can bootstrap several types of code (Dockerized microservice, just a plain-old express webapp or non-dockerized API). The default mode is a Dockerized microservice (which we highly recommend). To install it, you are going to need a working Docker setup on your machine. It is easy to get Docker installed on your computer. Installers for major systems are available at: <https://www.docker.com/community-edition>

Once you have Docker in place, you can bootstrap a new Dockerized microservice by running:

```
nodebootstrap first-microservice
```

and following instructions of the installer.

To see all of the options of nodebootstrap (including: how to change destination folder), please run:

```
nodebootstrap -h
```

Once the installation completes, you will have a functional version of the new project. Installer will output instructions about where to access the project and how to finish building it.
