On-premises UI

The on-premises UI is a standalone version of Structurizr that can be run locally on your own servers in conjunction with the on-premises API, providing all of the major features needed to visualise, document and explore your software architecture.

The on-premises UI is currently in beta and is available as a part of the free one month trial (you'll find a link on your dashboard to download it).

Deployment

To run Structurizr on-premises, you need both the on-premises API and the on-premises UI. These are Java EE web applications, packaged as .war files for deployment into any compatible Java EE server such as Apache Tomcat. 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.

Pre-requisites

On-premises API

After downloading the on-premises API, copy the structurizr-onpremises-api.war file to TOMCAT_HOME/webapps/api.war.

You then need to add some configuration information. To do this, create a file called api.xml in the TOMCAT_HOME/conf/Catalina/localhost directory (you will need to create this directory structure) with the following content.

<Context>
    <Environment name="structurizr/dataDirectory" value="/usr/local/structurizr" type="java.lang.String"/>
</Context>

The parameters being configured in this file are as follows.

  • structurizr/dataDirectory: The location where Structurizr data will be stored.

On-premises UI

After downloading the on-premises UI, copy the structurizr-onpremises-ui.war file to TOMCAT_HOME/webapps/ROOT.war. The on-premises UI must be installed as the root web application. Delete the existing ROOT directory if it exists. You then need to add some configuration information. To do this, create a file called ROOT.xml in the TOMCAT_HOME/conf/Catalina/localhost directory with the following content (replacing ... with your license key).

<Context>
    <Environment name="structurizr/dataDirectory" value="/usr/local/structurizr" type="java.lang.String"/>
    <Environment name="structurizr/apiUrl" value="http://localhost:8080/api" type="java.lang.String"/>
    <Environment name="structurizr/license" value="..." type="java.lang.String"/>
</Context>

The parameters being configured in this file are as follows.

  • structurizr/dataDirectory: The location where Structurizr data will be stored (this is the same as that specified for the on-premises API).
  • structurizr/apiUrl: The URL where the on-premises API can be found (e.g. http://localhost:8080/api).
  • structurizr/license: The Structurizr on-premises license key.

Usage

After starting Apache Tomcat, you should be able to navigate to http://localhost:8080/api in your browser and see the the on-premises API running.

On-premises API home page

And the on-premises UI can be found at http://localhost:8080.

On-premises UI home page

Usage

Using the on-premises UI is much the same as the cloud version. Simply create a workspace using the "Create a new workspace" link on the home page, make a note of the API key/secret pair and upload your workspace content via Java or C# code using the on-premises API.

Cloud service vs on-premises product

The key differences between the cloud service and the on-premises UI are as follows:

  • The role-based security features have been taken out to simplify deployment, operation and support. If you need additional security, you can either modify the web.xml file to add security constraints or place the on-premises UI behind (e.g.) Apache, and let that manage access control or single-sign on.
  • Structurizr Express is not available.

Pricing and licensing

The on-premises UI will be available as a perpetual license with support and updates included for the first year.