Skip to content

Latest commit

 

History

History
66 lines (46 loc) · 3.02 KB

docker-compose.md

File metadata and controls

66 lines (46 loc) · 3.02 KB

Docker Compose Installation

This document describes how to install the ATT&CK Workbench components using Docker Compose. This project (ATT&CK Workbench Frontend) includes a docker-compose.yml file that configures the Docker Compose installation.

1. Download required repositories

In addition to this project, the ATT&CK Workbench REST API and ATT&CK Workbench Collection Manager projects must be pulled from their github repositories.

These projects must be placed under a common parent directory:

|-- <common parent directory>
    |-- attack-workbench-frontend
    |-- attack-workbench-rest-api
    |-- attack-workbench-collection-manager

To perform all three clones as required (including the clone of this repository), you can use the following commands from your working directory:

# download the front-end repository
git clone https://github.com/center-for-threat-informed-defense/attack-workbench-frontend.git
# download the collection manager repository
git clone https://github.com/center-for-threat-informed-defense/attack-workbench-collection-manager.git
# download the REST API repository
git clone https://github.com/center-for-threat-informed-defense/attack-workbench-rest-api.git

2. Build docker images

  1. Navigate to the attack-workbench-frontend directory (containing the docker-compose.yml file)
  2. Run the command:
docker-compose up

This command will build all of the necessary Docker images and run the corresponding Docker containers.

3. Access Docker instance

With the docker-compose running you can access the ATT&CK Workbench application by visiting the URL localhost in your browser.

Updating an existing install

If you have previously built the Workbench and want to rebuild based on a newer release of the codebase, the following command can be used to force a rebuild of the data. Before running it, make sure that all three repositories are up-to-date with the head of the branch (typically develop or master) to ensure that compatibility issues don't occur between the components.

docker-compose up --build

Containers

When deployed using Docker Compose, an ATT&CK Workbench installation will include four containers:

  • frontend
  • rest-api
  • collection-manager
  • mongodb

These containers will communicate as illustrated in the diagram below. The nginx instance (part of the frontend container) is responsible for serving the statically built code for the ATT&CK Workbench web application. It also acts as a reverse proxy for the rest-api and collection-manager services.

Workbench Configuration

Note that the docker-compose.yml file exposes the ATT&CK Workbench web application on port 80. The nginx configuration file (nginx/nginx.conf) can be modified to use HTTPS and port 443, depending on your operational requirements.