Waltz
Overview
Waltz is the FINOS open source Enterprise Architecture tool. It gives an organisation one authoritative, queryable model of its estate: the applications it runs, the organisational units that own them, the data flows between systems, and the measurables and assessments that describe capability, cost and risk. Architects, application owners and change teams use it to explore, attest to and report on that landscape, instead of rediscovering it from scattered spreadsheets and diagrams.
The SecureAnyCloud image installs the official Waltz 1.84.0 release, verified against the upstream release SHA256 checksum at build time. Waltz runs as a self-contained Java application (an embedded Jetty server) under a dedicated non-root waltz service user on the OpenJDK 17 runtime, backed by a local PostgreSQL 16 database. The image ships with the upstream sample landscape preloaded (organisational units, applications, data flows, measurables and assessments), so a launched VM opens on a populated model rather than an empty install.
Waltz is designed to run behind an authenticating gateway, because its built-in login is intended for development only. The image therefore keeps the application on the loopback path and puts nginx in front as the only public listener, requiring HTTP Basic authentication. The authenticated user is passed straight through to Waltz as a full administrator, so a single credential unlocks the whole product.
No credential is baked into the image. On first boot, every VM mints its own database password and its own administrator password, verifies that the administrator works, and confirms that the guessable admin/admin default is rejected. It then writes the details to /root/waltz-credentials.txt (mode 0600).
What you get:
- Waltz 1.84.0 (the official FINOS release, exploded under
/opt/waltz/app) on the OpenJDK 17 runtime, run as the non-rootwaltzuser - nginx on
:80as the only public listener, requiring HTTP Basic authentication and passing the authenticated user to Waltz, plus an unauthenticated/healthendpoint - PostgreSQL 16 as the backing database, holding the preloaded sample landscape
- An nftables ruleset that keeps the application port
8443off the public interface, so nginx on:80is the only way in - Header-based authentication, configured so that the Basic-auth user is a full Waltz administrator (all roles), with no password login accounts shipped in the image
- JVM heap sized automatically at first boot from the VM's actual memory
- A per-VM administrator password and database password, minted at first boot and stored in a root-only file
waltz.service,postgresql.service,nginx.serviceandnftables.serviceas enabled, active systemd units- 24/7 SecureAnyCloud support
Prerequisites
Before you deploy this image, make sure you have:
- An Azure subscription with permission to create resources
- The Azure CLI installed and signed in (
az login), if you deploy from the command line - An SSH key pair for VM access
Step 1 - Deploy from the Azure Marketplace
Find Waltz on Ubuntu 24.04 in the Azure Marketplace and select Create. Choose your subscription, resource group and region.
The recommended size is Standard_B2ms (2 vCPU / 8 GiB), because Waltz and its local PostgreSQL share the VM. In the networking step, open inbound port 80 (HTTP). Then review and create the VM.
Step 2 - Deploy from the Azure CLI
az vm image terms accept --urn sac1647283583153:waltz-ubuntu-24-04:default:latest
az vm create \
--resource-group my-resource-group \
--name my-waltz \
--image sac1647283583153:waltz-ubuntu-24-04:default:latest \
--size Standard_B2ms \
--admin-username azureuser \
--generate-ssh-keys \
--public-ip-sku Standard
az vm open-port --resource-group my-resource-group --name my-waltz --port 80First boot mints the per-VM credentials and starts the services. Allow a minute or two after the VM is running before you sign in.
Step 3 - Connect to your VM
ssh azureuser@<vm-ip>Step 4 - Confirm the services are running
Waltz, PostgreSQL and nginx run as systemd units. nftables keeps the application port 8443 off the public interface, so nginx on :80 is the only public listener.
systemctl is-active waltz.service postgresql.service nginx.service curl -s -o /dev/null -w 'health: HTTP %{http_code}\n' http://localhost/healthThe output shows active three times and health: HTTP 200.
Step 5 - Retrieve your administrator login
The administrator username and password are unique to your VM. First boot writes them to a root-only file.
sudo cat /root/waltz-credentials.txtThe file lists WALTZ_ADMIN_USER (the sign-in name for the nginx front door), WALTZ_ADMIN_PASSWORD (unique to this VM) and the database password. Store them somewhere safe.
To verify the credential end to end from the shell, run the following commands. nginx rejects an unauthenticated request and the guessable default. The per-VM password authenticates and returns a full-administrator identity:
curl -s -o /dev/null -w 'no credentials: HTTP %{http_code}\n' http://localhost/api/user/whoami
curl -s -o /dev/null -w 'admin/admin: HTTP %{http_code}\n' -u admin:admin http://localhost/api/user/whoami
curl -s -u '<WALTZ_ADMIN_USER>:<WALTZ_ADMIN_PASSWORD>' http://localhost/api/user/whoamiThe first two commands return HTTP 401. The last command returns your administrator's user record with its granted roles.
Step 6 - First sign-in
Browse to http://<vm-ip>/. When your browser prompts for HTTP Basic credentials, enter the WALTZ_ADMIN_USER and WALTZ_ADMIN_PASSWORD from the previous step.
Waltz opens on its home page. The page shows a summary of the preloaded demo landscape, recent change activity, and quick links into the model.
Step 7 - Explore an application
Use the Search box in the title bar, or the Org Units menu, to open any application in the sample landscape.
An application view shows its lifecycle phase, owning org unit, criticality and complexity ratings, and assessments. The left-hand sidebar lists its data flows, costs, change initiatives, people, technology and more.
Step 8 - Trace a data flow
Waltz's core strength is modelling the flows between systems. Open any logical data flow to see its source and target applications, the data types that move across it, its provenance and its assessments. Together, these flows are the building block of a landscape-wide data-lineage picture.
Step 9 - Browse the capability viewpoints
Open the Function menu to reach the taxonomy viewpoints. These are the business-function hierarchy that the landscape is mapped against, with coverage indicators and the people involved.
Viewpoints turn a flat list of applications into a structured, navigable model of what the organisation does.
Step 10 - Confirm the preloaded landscape
You can check the size of the preloaded model, and the authentication mode, directly from the database:
sudo -u postgres psql waltz -tAc "SELECT 'applications: '||count(*) FROM application UNION ALL SELECT 'org units: '||count(*) FROM organisational_unit UNION ALL SELECT 'data flows: '||count(*) FROM logical_flow;"The sample landscape ships with over a hundred applications, dozens of organisational units and hundreds of data flows.
The preloaded landscape is the upstream FINOS demo dataset, so the tool is useful the moment you sign in. When you are ready to model your own estate, clear the demo data and import your own through the Waltz bulk-upload screens and REST API.
Enabling HTTPS
The image serves HTTP on port 80 behind nginx. For production, place your VM behind a TLS-terminating load balancer or reverse proxy, or add a certificate to nginx directly.
If you point a DNS name at the VM, you can obtain a free certificate with certbot:
sudo apt-get update && sudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.example.comCertbot updates the nginx site in place and sets up automatic renewal.
Backup and maintenance
Waltz keeps all of its state in its PostgreSQL database. Back it up with a standard dump:
sudo -u postgres pg_dump waltz | gzip > waltz-backup-$(date +%F).sql.gzThe OS is configured for unattended security updates. To update Waltz itself, follow the upstream release notes. Replace the exploded application under /opt/waltz/app with the new release, apply the release's Liquibase changelog set to the database, and restart waltz.service.
Support
Every SecureAnyCloud image comes with 24/7 support. For help with this image or your deployment, contact the SecureAnyCloud team at secureanycloud.com.
Deploy on Azure
Launch Waltz 1.84 on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.
View this image
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com