The Structurizr on-premises installation needs to be given access to a directory, where all data will be stored. We’ll refer to this directory as the “Structurizr data directory”.
Assuming that you have Docker installed, to start the Structurizr on-premises installation, use the following command to pull the image from Docker Hub.
docker pull structurizr/onpremises
Then use the following command to start the Docker container, replacing
PATH with the path to your Structurizr data directory:
docker run -it --rm -p 8080:8080 -v PATH:/usr/local/structurizr structurizr/onpremises
For example, if your Structurizr data directory is located at
/Users/simon/structurizr, the command would be:
docker run -it --rm -p 8080:8080 -v /Users/simon/structurizr:/usr/local/structurizr structurizr/onpremises
There is a Dockerfile in the GitHub repo that can be used as a starting point if you’d like to build your own Docker image.
To use the Jakarta EE version, you’ll need:
- Java 17+ (required)
- A Jakarta EE compatible web/application server (required, e.g. Apache Tomcat 10.x … please note that Tomcat 9.x and other Java EE servers are no longer supported)
- Graphviz (optional if you want to use automatic layout)
Here are some basic instructions that assume you are using a freshly downloaded version of Apache Tomcat. In the instructions that follow (
TOMCAT_HOME refers to the location of the Apache Tomcat installation).
Shutdown Apache Tomcat if it’s running.
Delete the following if they exist:
structurizr-onpremises.war file from https://github.com/structurizr/onpremises/releases, move it to the
TOMCAT_HOME/webapps directory, and rename it to
ROOT.war (the on-premises installation must be installed as the root web application, and is not designed to work otherwise).
You then need to configure the Structurizr data directory location. The easiest way to do this is to set an environment variable named
STRUCTURIZR_DATA_DIRECTORY, with a value of the full path to your Structurizr data directory. For example:
After starting Apache Tomcat (e.g. using the