Be sure to have [`docker-compose.yml`](./docker-compose.yml) and [`nginx.conf`](./nginx.conf) inside your current working directory.
```bash
# start nginx and plantuml server
docker-compose up -d
# stop nginx and plantuml server
docker-compose down
```
Check with `docker ps` if both container are up and running:
```
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
217e753a0dcf plantuml/plantuml-server:jetty "/entrypoint.sh" 4 seconds ago Up 3 seconds 8080/tcp plantuml-server
9b1290c100f5 nginx:alpine "/docker-entrypoint.…" 4 seconds ago Up 3 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp nginx
```
Open [http://localhost](http://localhost) inside your browser.
YEAH! You are now using PlantUML behind a simple Nginx reverse proxy.
## Nginx configuration
```nginx
...
# PlantUML
location / {
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://plantuml-server:8080/;
}
...
```
-`location /` to reverse complete server
-`proxy_set_header HOST $host` and `proxy_set_header X-Forwarded-Host $host` to replaces local plantuml server ip with FQDN
-`proxy_set_header X-Forwarded-Proto $scheme` to use reverse proxy protocol schema instead of communication schema between reverse proxy and plantuml server
-`proxy_pass http://plantuml-server:8080/` to set reverse proxy path to plantuml server.
Use the docker container name `plantuml-server` instead of ip addresses.