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.
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
- Navigate to the
attack-workbench-frontend
directory (containing thedocker-compose.yml
file) - Run the command:
docker-compose up
This command will build all of the necessary Docker images and run the corresponding Docker containers.
With the docker-compose running you can access the ATT&CK Workbench application by visiting the URL localhost
in your browser.
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
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.
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.