Installation
The Structurizr on-premises installation is available as Docker image and a Jakarta EE application.
Create the Structurizr data directory
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”.
Docker
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.
Jakarta EE
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
Shutdown Apache Tomcat if it’s running.
Delete the ROOT web application
Delete the following if they exist:
TOMCAT_HOME/webapps/ROOT.war
TOMCAT_HOME/webapps/ROOT
Download/copy the on-premises installation file
Download the 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).
Configuration
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:
export STRUCTURIZR_DATA_DIRECTORY=/Users/simon/structurizr
Start Apache Tomcat
After starting Apache Tomcat (e.g. using the TOMCAT_HOME/bin/startup.sh
or TOMCAT_HOME\bin\startup.bat
script).