# Docker Compose

Follow this guide to setup Docker Compose to run Activiti Cloud on your local computer in Docker VM.

## Hardware Setup

You will need to allocate at least 4 CPU cores and 8 Gb of RAM for your Docker VM machine.

## Software Setup

Before you start, the following packages must be installed:

* Install [Docker for Desktop](https://www.docker.com/) or [Docker Toolbox](https://github.com/docker/toolbox/releases) for your OS
* Install [Docker-compose](https://docs.docker.com/compose/install/) if you use Docker for Desktop.
* Install GNU Make. For Linux and Mac it is usually installed already, for Windows use [Chocolatey GNU Make](https://chocolatey.org/packages/make) to install Make.
* Install Git Bash Terminal . For Linux and Maс it is usually pre-installed. If you use Docker for Desktop on Windows, use [Chocolatey Git Install](https://chocolatey.org/packages/git.install) to install Git Bash Terminal.

## Clone Activiti Cloud Examples

Open Bash command line terminal and run these commands to clone <https://github.com/Activiti/activiti-cloud-examples> into your local environment:

```bash
git clone https://github.com/Activiti/activiti-cloud-examples
cd activiti-cloud-examples/docker-compose
```

## Configure Your Environment

You need to edit `.env` file to configure DOCKER\_IP property based on your OS and Docker VM type.

* Use your local computer IP address for Docker for Desktop on Linux, Mac or Windows
* Use `docker-machine ip` command if you use Docker Toolbox
* Don't use 127.0.0.1 or localhost

## How To Run Activity Cloud

#### Start Modeler

```bash
make modeler
```

After starting Modeler, wait for the containers to start. You can check the status by running `make ps` and `make logs` command to make sure that the containers are ready.

To access modeler please open the url in your browser:

```bash
http://$DOCKER_IP/modeling
```

You will be redirected to keycloak where you have to use credentials *modeler/password*

#### Start Application

```bash
make application
```

You will need to use [Postman](https://www.getpostman.com/downloads/) to use Activiti Rest Apis

Start Postman and add to Postman collection *Activiti v7 REST API.postman\_collection.json* located in <https://github.com/Activiti/activiti-cloud-examples>

*Then at the top right choose manage environment then use your own ip in current value tab.*\
Then use *activiti* as default environment.\
To start work execute *getKeycloakToken hruser* in Postman Keycloak collection. Then run startProcess in rb-my-app Postman collection.

#### Start All Services

```bash
make all
```

#### Start all serices Using Docker Compose

```bash
docker-compose up
```

#### Stop All Services

```bash
make stop
```

#### Stop Application

```bash
make application/stop
```

#### Stop Modeler

```bash
make modeler/stop
```

#### Shutdown All Services

```bash
make down
```

#### Shutdown All Services Using Docker Compose

```bash
docker-compose down
```

### Usefull commands

To see and follow logs in your terminal

```bash
make logs
```

To see logs for one service only

```bash
make  example-runtime-bundle/logs
```

Quickly ssh to service pod

```bash
make  example-runtime-bundle/ssh
```

Other available actions

```bash
make help
```

### Common errors

* Please be sure that you are located in docker-compose folder before running commands.
* If something doesn't work with modeller first of all clear cookies or start in incognito window
* If you are using nip.io address make sure that local firewall or company firewall doesn't block requiests


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://activiti.gitbook.io/activiti-7-developers-guide/getting-started/getting-started-activiti-cloud/getting-started-docker-compose.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
