PlantUML Server - Secure Diagram-as-Code

AWS Developer Tools

self hosted diagram as code rendering, powered by cloudimg

Base
Hardened build
minimal ports, security patches applied at build time
Access
Unique credentials
generated on first boot, readable only by root
Verified
Boots working
services pass a health gate before release
Support
24/7, 365 days
by email and live chat, 24 hour response SLA

Overview

PlantUML Server renders plain text diagram source into UML and other diagrams in your browser and over a stateless HTTP API. Paste PlantUML source into the editor and get a live sequence, class, activity, state or component diagram as SVG, PNG or ASCII, or point a wiki or documentation pipeline at the encoded URL API to embed always current diagrams generated straight from text in source control. The cloudimg image runs the renderer bound to loopback behind an HTTPS reverse proxy with per instance authentication, so diagram rendering stays entirely inside your own account.

Why the cloudimg image

The cloudimg image is secure by default: PlantUML Server has no login of its own, so it is bound to loopback and fronted by nginx over HTTPS with HTTP Basic auth whose password and TLS certificate are generated uniquely on each instance first boot. The renderer runs with an internet grade security profile that blocks local file includes and internal address fetches. Graphviz is bundled, the appliance container store and logs live on a dedicated data volume, and every instance is backed by 24/7 cloudimg support.

Common uses

  • Embed always current diagrams in wikis and documentation via the encoded URL rendering API
  • Author sequence, class, activity and state diagrams as plain text in the browser editor
  • Render architecture and design diagrams privately inside your own account instead of a public service

Key features

  • Secure by default with zero shared credentials: PlantUML Server has no built-in authentication, so this image binds it to the loopback interface and fronts it with an nginx HTTPS reverse proxy enforcing HTTP Basic auth. Every instance generates its own cryptographically random password and TLS certificate on first boot.
  • Operational in minutes with zero manual configuration: the Java runtime, servlet container, Graphviz, HTTPS reverse proxy and credential setup are all completed at build time. Launch an instance, SSH in to read your unique password from /root/plantuml-server-credentials.txt, and open the browser to a working, authenticated diagram-rendering server without editing a single configuration file or installing additional packages.
  • Full diagram-as-code rendering with dedicated storage and 24/7 support: render sequence, class, activity, state, component and use-case diagrams from plain text, export SVG, PNG or ASCII, and embed always-current diagrams anywhere via the stateless encoded-URL rendering API. Logs and container data live on a separate, independently-resizable EBS volume you can snapshot with AWS Backup. Backed by 24/7 cloudimg technical support via email and chat.

See it running

Real screenshots taken while testing this image against its deployment guide.

PlantUML Server - Secure Diagram-as-Code screenshot 1 PlantUML Server - Secure Diagram-as-Code screenshot 2 PlantUML Server - Secure Diagram-as-Code screenshot 3

Description

This is a repackaged open source software product wherein additional charges apply for cloudimg support services.

## Overview

PlantUML Server is a browser-based rendering server for PlantUML, the popular open source diagram-as-code language. Type or paste plain-text diagram source into the editor and watch it render live as a UML diagram - sequence, class, activity, state, component, use-case, deployment and more - which you can download as SVG, PNG or ASCII art. It also exposes a stateless HTTP rendering API: an encoded diagram in the URL returns the rendered image, so wikis, documentation sites and editors can embed always-current diagrams generated straight from text in source control. This image delivers a fully installed, security-hardened PlantUML Server appliance so a working diagram-rendering endpoint is operational within minutes of launch, self-hosted in your own AWS account.

## Why This Image vs a Manual Install

This image eliminates the Java runtime and servlet-container setup, Graphviz installation, reverse-proxy configuration, TLS termination and credential hardening that a bare install requires. PlantUML Server has no authentication of its own, so exposing it directly would put an unauthenticated diagram renderer on the network. This image never leaves it exposed: the server is bound to the loopback interface only, and an nginx reverse proxy fronts it over HTTPS with HTTP Basic authentication whose password is generated uniquely on each instance's first boot. The renderer additionally runs with an internet-grade security profile that blocks local-file includes and requests to internal network addresses. Launch the instance, read your unique credential, and start rendering diagrams.

## Application Stack

PlantUML Server runs from the maintainer's official pinned distribution, which bundles the diagram engine and Graphviz, bound to the loopback interface. An nginx reverse proxy on port 443 forwards to it over a per-instance self-signed TLS certificate, enforcing HTTP Basic authentication; port 80 serves an unauthenticated health endpoint and redirects everything else to HTTPS. The server is stateless - it stores no diagrams and keeps no per-user data - and the appliance's container store and logs live on a dedicated, independently-resizable data volume mounted at /var/lib/plantuml.

## Security Hardening

This image follows a defence-in-depth approach:

  • Network isolation: the renderer binds exclusively to the loopback interface; only the nginx reverse proxy is exposed
  • Authentication enforced: every request is authenticated except an unauthenticated health endpoint for load-balancer probes
  • No default or shared credentials: a cryptographically random web password is generated on each instance's first boot and written only to a root-only file
  • SSRF and include hardening: the renderer runs with an internet-grade security profile that blocks local-file includes and fetches of internal or loopback network addresses
  • Encrypted transport: the reverse proxy terminates HTTPS with a certificate generated uniquely per instance
  • Automatic restart: systemd monitors the renderer and nginx and restarts them on failure

## Concrete Use Cases

  • Diagrams as code in your documentation: Point a wiki, static-site generator or documentation pipeline at the encoded-URL rendering API so every diagram is generated from text in source control and is always current, with no binary image files to maintain
  • Live diagram authoring: Open the browser editor to sketch and iterate on sequence, class, activity and state diagrams in plain text, previewing the render instantly and exporting SVG or PNG when done
  • Self-hosted rendering for privacy: Run diagram rendering entirely inside your own AWS account instead of a public PlantUML service, so proprietary architecture and design diagrams never leave your network

## AWS Integration

Deploy on any EC2 instance type; larger instances render bigger diagrams faster. Keep the appliance's container store and logs on the dedicated EBS data volume and snapshot it independently with AWS Backup. Use the unauthenticated health endpoint with an Application Load Balancer for availability monitoring.

## Pricing and Evaluation

This listing includes a software charge in addition to standard AWS infrastructure costs. See the Pricing tab for the current rate. To evaluate at low cost, launch on a small instance type and scale up when ready.

## Getting Started

1. Launch the AMI from this listing with a key pair and a Security Group allowing inbound ports 22, 80 and 443.

2. SSH into the instance and retrieve your unique web password from /root/plantuml-server-credentials.txt.

3. Open https:// in your browser, accept the self-signed certificate, and log in with username "admin" and your retrieved password.

4. Paste PlantUML source into the editor to render a diagram, or call the encoded-URL API from your wiki.

Related technologies

plantuml serveruml diagramdiagram as codesequence diagramclass diagramdiagram renderingdocumentation toolgraphvizself-hosted diagramsvg exportarchitecture diagramdeveloper toolstext to diagram