### Heroku

You can deploy Rakam to Heroku using Heroku button, it uses Heroku Postgresql add-on for your app and uses Postgresql deployment type.


### Docker

Run the following command to start a Postgresql server in docker container and Rakam API in your local environment.

After docker container is started, visit [](🔗) and follow the instructions. You can also register your local Rakam API to Rakam BI at [http://app.rakam.io](🔗) or directly use Rakam API. You may also consult to [API documentation](🔗) for details of the API.

We also provide a docker-compose definition for a Postgresql backend. Create a `docker-compose.yml` with this definition and run the command `docker-compose -f docker-compose.yml up -d`.

You can set config variables for Rakam instance using environment variables. All properties in config.properties file can be set via environment variable `RAKAM_CONFIG_property_name_dots_replaced_by_underscore`. For example, if you want to set `store.adapter=postgresql` you need to set environment variable `RAKAM_CONFIG_STORE_ADAPTER=postgresql`. Also the dash `-` is replaced by double underscore character `__`. Therefore the environment variable `RAKAM_CONFIG_LOCK__KEY` corresponds to `lock-key` config property.

Dockerfile will generate `config.properties` file from environment variables in docker container that start with `RAKAM_CONFIG` prefix.

In order to set environment variables for container, you may use `-e` flag for for `docker run` but we advice you to set all environment variables in a file and use `--env-file` flag when starting your container.

Then you can share same file among the Rakam containers. If Dockerfile can't find any environment variable starts with `RAKAM_CONFIG`, it tries to connect Postgresql instance created with docker-compose.

### AWS (Cloudformation)

Please [contact us](🔗) for Cloudformation templates of Rakam.

Cloudformation templates create a Opsworks stack in your AWS account for Rakam. You can easily monitor, scale and manage your Rakam cluster with these Cloudformation templates.

Cloudformation is the recommended way to deploy Rakam in production because AWS automatically handles most of the complexity like fail over and load-balancing.

### Building Rakam

You can try the master branch by pulling the source code from Github and building Rakam using Maven:

##### Requirements
  • Java 8

  • Maven 3.2.3+ (for building)

##### Running the application locally

Note that you need to modify `config.properties` file in order to be able to start Rakam. [(sample for Postgresql deployment type)](🔗)

##### Running Rakam in your IDE

Since we already use Maven, you can import Rakam to your IDE using the root pom.xml file. We recommend using Intellij IDEA since the core team uses it when developing Rakam. Here is a sample configuration for executing Rakam in your IDE: