Scruffy micro web server to have your own UML class/sequence diagram page like yUML and even more lean.
scruffy-server is a micro web server front-end for Scruffy: A UML class/sequence diagram generator from human text, like yUML, with a very clean interface.
Features:
If you have Docker installed:
$ docker run -d -p 8080:8080 wernight/scruffy-server
And browse to http://localhost:8080/
That Dockerize container is:
35726
(selected randomly to avoid mapping to an existing user).You can deploy on Kubernetes (for example on Google Container Engine), once you've kubectl and a running cluster:
$ kubectl run-container scruffy --image=wernight/scruffy-server:latest --port=80
$ kubectl expose rc scruffy --port=80 --target-port=8080 --create-external-load-balancer
Wait may be a minute or so and you should have a public IP (the second one here):
$ kubectl get svc scruffy
NAME LABELS SELECTOR IP(S) PORT(S)
scruffy run=scruffy run=scruffy 10.255.255.10 80/TCP
104.123.45.67
$ xdg-open http://104.123.45.67
Be aware that there is no ACL, no spam check, and no caching (i.e. anyone can access by default and evil doers might use all your CPU). So you probably would want it only on a private network or proxied behind a password protected URL. For example you could put it behind Nginx as reverse proxy, with a basic authentication.
Install Scruffy pre-requisites:
$ sudo apt-get install python-dev python-setuptools graphviz plotutils librsvg2-bin
$ pacman -S graphviz python2 plotutils librsvg
Run Scruffy-Server:
$ git clone https://github.com/wernight/scruffy-server.git
$ cd scruffy-server
$ virtualenv ENV --system-site-packages && source ENV/bin/activate # (optional)
$ pip install -r requirements.txt
$ python server.py
Browse http://localhost:8080/
Edit the end of server.py
to change the port or IP binding.
See also Bottle Deployment.
scruffy-server is good for lean short UML diagrams even from a mobile phone or tablet.
The only real risk is that your server isn't well sandboxed and a user sends malicious UML code.
For users however there is no real need for password protection because the URL shared is the entire UML diagram source code. This means that no one can try to guess your UML by trying random URLs (as it would only generate all possible UMLs), and any change to an existing UML will generate a new URL. So you can generate a diagram, share it, without ever needing a password. Just remember: URL = UML.
Check that the user running server.py
can execute Scruffy suml
command.
Chech Arch Fonts - Pango Warnings. You may want to install ttf-tlwg
to have Purisa
and a more scruffy look (a bit like Comic Sans).
You can also add ..., '--font-family', 'Purisa', ...
to suml
parameters, see "How to change the UML font and style" question below.
If you just want to use another font, you can set environement variable SCRUFFY_FONT
to the font family you'd like to use.
For a full list of possible settings, execute $ suml --help
to find what is allowed and change the check_output(...)
parameters in server.py
.
Improvement ideas and pull requests are welcome via Github Issue Tracker.