Building from source

Part of the UI is shared between the on-premises installation, cloud service, and Structurizr Lite so you will need to additionally clone the structurizr/ui repo.

To build from source:

git clone https://github.com/structurizr/onpremises.git structurizr-onpremises
git clone https://github.com/structurizr/ui.git structurizr-ui
cd structurizr-onpremises
./ui.sh
./gradlew clean build

The integration tests use Testcontainers to start an Elasticsearch instance. If you don’t have Docker installed, you can use ./gradlew clean build -x integrationTest to exclude the integration tests.

If successful, you will see a file named structurizr-onpremises.war in structurizr-onpremises/build/libs.

To then build a Docker image:

cd structurizr-onpremises
docker build . -t mytag

And to start a Docker container from this image (replace /path/to/dataDirectory):

docker run -it --rm -p 8080:8080 -v /path/to/dataDirectory:/usr/local/structurizr mytag