Render diagrams on your own machine or network — macOS, Linux, Windows, or Docker.
PlantUML QuickLook renders diagrams by sending the diagram text to a PlantUML server. By default it uses the public service at plantuml.com — nothing to install. If you'd rather keep your diagrams on your own infrastructure, run one of the servers below and enter its address in the app's PlantUML Server field.
/plantuml/, e.g. http://host:8080/plantuml/svg/. Best for macOS, Linux, and Windows.jetty image serves at the root, e.g. http://host:8080/svg/. Best if you already use Docker.Whichever you pick, in PlantUML QuickLook you enter the base URL ending in /svg/. Requires a Java runtime (JRE 11+; 17 recommended) for the picoweb options.
brew install --cask temurin # a Java runtime
curl -L -o ~/plantuml.jar \
https://github.com/plantuml/plantuml/releases/latest/download/plantuml.jar
java -jar ~/plantuml.jar -picoweb:8080 # serves on port 8080
In the app, set the server to http://localhost:8080/plantuml/svg/. To keep it running across logins, add it as a Login Item or a launchd agent.
# 1. install a JRE (Debian/Ubuntu shown; Fedora/RHEL: sudo dnf install java-17-openjdk)
sudo apt update && sudo apt install -y default-jre
sudo mkdir -p /opt/plantuml
sudo curl -L -o /opt/plantuml/plantuml.jar \
https://github.com/plantuml/plantuml/releases/latest/download/plantuml.jar
# 2. a service that starts on boot
sudo useradd -r -s /usr/sbin/nologin plantuml 2>/dev/null || true
sudo tee /etc/systemd/system/plantuml.service >/dev/null <<'EOF'
[Unit]
Description=PlantUML picoweb server
After=network.target
[Service]
User=plantuml
ExecStart=/usr/bin/java -jar /opt/plantuml/plantuml.jar -picoweb:8080
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload && sudo systemctl enable --now plantuml
In the app, set the server to http://YOUR-SERVER-IP:8080/plantuml/svg/.
winget install EclipseAdoptium.Temurin.17.JRE # a Java runtime
curl -L -o plantuml.jar ^
https://github.com/plantuml/plantuml/releases/latest/download/plantuml.jar
java -jar plantuml.jar -picoweb:8080
In the app, set the server to http://localhost:8080/plantuml/svg/. To run it as a background service, use a tool such as NSSM.
docker run -d -p 8080:8080 plantuml/plantuml-server:jetty
The jetty image serves at the root, so set the server to http://localhost:8080/svg/. (The :tomcat image serves under /plantuml, i.e. http://localhost:8080/plantuml/svg/.)
For a server on your local network (a private address such as 192.168.x.x or 10.x.x.x, or your own Mac), plain http works. For a server reachable over the public internet, use HTTPS — put the server behind a TLS reverse proxy such as Caddy (automatic HTTPS) or nginx, and use an https://…/svg/ address.
The picoweb server has no authentication — anyone who can reach its port can render against it. On a trusted home or office network that's fine; otherwise restrict the port to your subnet with a firewall, or put it behind a reverse proxy that adds access control.
Open PlantUML QuickLook, and in the PlantUML Server field enter the base URL ending in /svg/ from the steps above. Leave it blank at any time to go back to the public plantuml.com service.