mirror of
https://github.com/octoleo/plantuml-server.git
synced 2024-12-22 08:48:54 +00:00
132 lines
4.1 KiB
Markdown
132 lines
4.1 KiB
Markdown
PlantUML Server
|
|
===============
|
|
[![Build Status](https://travis-ci.org/plantuml/plantuml-server.png?branch=master)](https://travis-ci.org/plantuml/plantuml-server)
|
|
[![](https://images.microbadger.com/badges/image/plantuml/plantuml-server.svg)](https://microbadger.com/images/plantuml/plantuml-server "Get your own image badge on microbadger.com")
|
|
[![Docker Pull](https://img.shields.io/docker/pulls/plantuml/plantuml-server.svg)](https://hub.docker.com/r/plantuml/plantuml-server/)
|
|
PlantUML Server is a web application to generate UML diagrams on-the-fly.
|
|
|
|
![](https://raw.githubusercontent.com/ftomassetti/plantuml-server/readme/screenshots/screenshot.png)
|
|
|
|
To know more about PlantUML, please visit http://plantuml.com/.
|
|
|
|
|
|
Requirements
|
|
============
|
|
|
|
* jre/jdk 1.6.0 or above
|
|
* apache maven 3.0.2 or above
|
|
|
|
How to run the server
|
|
=====================
|
|
|
|
Just run:
|
|
|
|
```
|
|
mvn jetty:run
|
|
```
|
|
|
|
The server is now listing to [http://localhost:8080/plantuml](http://localhost:8080/plantuml).
|
|
In this way the server is run on an embedded jetty server.
|
|
|
|
You can specify the port at which it runs:
|
|
|
|
```
|
|
mvn jetty:run -Djetty.port=9999
|
|
```
|
|
|
|
How to run the server with Docker
|
|
=================================
|
|
|
|
You can run Plantuml with jetty or tomcat container
|
|
```
|
|
docker run -d -p 8080:8080 plantuml/plantuml-server:jetty
|
|
docker run -d -p 8080:8080 plantuml/plantuml-server:tomcat
|
|
```
|
|
|
|
The server is now listing to [http://localhost:8080](http://localhost:8080).
|
|
|
|
## Read-only container
|
|
|
|
The jetty container supports read-only files system, you can run the read-only mode with:
|
|
```
|
|
docker run -d -p 8080:8080 --read-only -v /tmp/jetty plantuml/plantuml-server:jetty-readonly
|
|
```
|
|
|
|
This makes the container compatible with more restricted environment such as OpenShift, just make sure you mount a volume (can be ephemeral) on `/tmp/jetty`.
|
|
|
|
## Change base URL
|
|
|
|
To run plantuml using different base url, change the `docker-compose.yml` file:
|
|
~~~
|
|
args:
|
|
BASE_URL: plantuml
|
|
~~~
|
|
|
|
And run `docker-compose up --build`. This will build a modified version of the image using
|
|
the base url `/plantuml`, e.g. http://localhost/plantuml
|
|
|
|
How to set PlantUML options
|
|
=================================
|
|
|
|
You can apply some option to your PlantUML server with environement variable.
|
|
|
|
If you run the directly the jar, you can pass the option with `-D` flag
|
|
```
|
|
java -D THE_ENV_VARIABLE=THE_ENV_VALUE -Djetty.contextpath=/ -jar target/dependency/jetty-runner.jar target/plantuml.war
|
|
```
|
|
or
|
|
```
|
|
mvn jetty:run -D THE_ENV_VARIABLE=THE_ENV_VALUE -Djetty.port=9999
|
|
```
|
|
|
|
If you use docker, you can use the `-e` flag:
|
|
```
|
|
docker run -d -p 8080:8080 -e THE_ENV_VARIABLE=THE_ENV_VALUE plantuml/plantuml-server:jetty
|
|
```
|
|
|
|
You can set all the following variables:
|
|
|
|
* `PLANTUML_LIMIT_SIZE`
|
|
* Limits image width and height
|
|
* Default value: `4096`
|
|
* `GRAPHVIZ_DOT`
|
|
* Link to 'dot' executable
|
|
* Default value: `/usr/local/bin/dot` or `/usr/bin/dot`
|
|
* `PLANTUML_STATS`
|
|
* Set it to `on` to enable [statistics report](http://plantuml.com/statistics-report)
|
|
* Default value: `off`
|
|
* `HTTP_AUTHORIZATION`
|
|
* when calling the `proxy` endpoint, the value of `HTTP_AUTHORIZATION` will be used to set the HTTP Authorization header
|
|
* Default value: `null`
|
|
* `ALLOW_PLANTUML_INCLUDE`
|
|
* Enables `!include` processing which can read files from the server into diagrams. Files are read relative to the current working directory.
|
|
* Default value: `false`
|
|
|
|
Alternate: How to build your docker image
|
|
======================================================
|
|
|
|
This method uses maven to run the application. That requires internet connectivity.
|
|
So, you can use following command to create a self-contained docker image that will "just-work".
|
|
|
|
*Note: Generate the WAR (instructions further below) prior to running "docker build"*
|
|
|
|
```
|
|
docker image build -t plantuml-server .
|
|
docker run -d -p 8080:8080 plantuml-server
|
|
```
|
|
The server is now listing to [http://localhost:8080/plantuml](http://localhost:8080/plantuml).
|
|
|
|
You may specify the port in `-p` Docker command line argument.
|
|
|
|
|
|
How to generate the war
|
|
=======================
|
|
|
|
To build the war, just run:
|
|
|
|
```
|
|
mvn package
|
|
```
|
|
|
|
at the root directory of the project to produce plantuml.war in the target/ directory.
|