All Projects → wernight → scruffy-server

wernight / scruffy-server

Licence: Apache-2.0 license
Scruffy micro web server to have your own UML class/sequence diagram page like yUML and even more lean.

Programming Languages

Smarty
1635 projects
python
139335 projects - #7 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to scruffy-server

fao
Party game based on Oink Games' tabletop game, "A Fake Artist Goes to New York." Draw with your phone or a mouse.
Stars: ✭ 70 (+59.09%)
Mutual labels:  webapp, mobile-web
modern.js
The meta-framework suite designed from scratch for frontend-focused modern web development.
Stars: ✭ 2,624 (+5863.64%)
Mutual labels:  webapp
tksweb
Web-based timesheeting system that exports TKS files
Stars: ✭ 15 (-65.91%)
Mutual labels:  webapp
SmartsApp
💬📱 An End to End Encrypted Cross Platform messenger app.
Stars: ✭ 69 (+56.82%)
Mutual labels:  webapp
performance-timeline
Performance Timeline
Stars: ✭ 102 (+131.82%)
Mutual labels:  webapp
uml-editor
Browser-based UML Editor
Stars: ✭ 34 (-22.73%)
Mutual labels:  uml-diagram
team
Free Knowledge Groupware
Stars: ✭ 63 (+43.18%)
Mutual labels:  webapp
vue-slim-cropper
💇‍♀️ A simple and elegant mobile image crop upload component for Vue 2.x | 简洁易用的 vue 移动端图片裁剪上传组件
Stars: ✭ 34 (-22.73%)
Mutual labels:  mobile-web
bpanel
A Blockchain Management System, powered by bcoin
Stars: ✭ 52 (+18.18%)
Mutual labels:  webapp
code-generator
Web Application to generate your training scripts with PyTorch Ignite
Stars: ✭ 30 (-31.82%)
Mutual labels:  webapp
brackette-prototype
Manage your Challonge tournaments with ease. A beta application
Stars: ✭ 14 (-68.18%)
Mutual labels:  webapp
azure-sdk-for-python-keyvault-secrets-get-set-managedid
How to set and get secrets from Azure Key Vault with Azure Managed Identities and Python
Stars: ✭ 13 (-70.45%)
Mutual labels:  webapp
react-flagkit
🇺🇦 React wrapper for FlagKit Flag Icons
Stars: ✭ 21 (-52.27%)
Mutual labels:  webapp
Lightcord
A webapp for Discord Bots
Stars: ✭ 20 (-54.55%)
Mutual labels:  webapp
NodeExpressCRUD
Node, Express, Mongoose and MongoDB CRUD Web Application
Stars: ✭ 45 (+2.27%)
Mutual labels:  webapp
onepile
Playground for the future of private notes and document management
Stars: ✭ 41 (-6.82%)
Mutual labels:  webapp
outofcontext
A party game suite web application.
Stars: ✭ 27 (-38.64%)
Mutual labels:  webapp
FediBooks
A web UI for creating your very own ebooks bots.
Stars: ✭ 21 (-52.27%)
Mutual labels:  webapp
dcdg.dart
Dart Class Diagram Generator
Stars: ✭ 98 (+122.73%)
Mutual labels:  uml-diagram
Steward
A stock portfolio manager that provides neural net based short-term predictions for stocks and natural language processing based analysis on community sentiments.
Stars: ✭ 25 (-43.18%)
Mutual labels:  webapp

Codenvy badge

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:

  • UML Class diagram
  • UML Sequence diagram
  • PNG / SVG export
  • Simple and fast interface
  • Works also without JavaScript
  • Mobile friendly

Screenshots

Screenshot

Screenshot Mobile

Installation

Using Docker

If you have Docker installed:

$ docker run -d -p 8080:8080 wernight/scruffy-server

And browse to http://localhost:8080/

That Dockerize container is:

  • Small: Using [Debian image][debian] is below 100 MB (while Ubuntu is about 230 MB), and removing build packages.
  • Simple: Exposes default port, easy to extend.
  • Secure: Runs as non-root UID/GID 35726 (selected randomly to avoid mapping to an existing user).
Deploy for Production

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.

Manual Install

  1. Install Scruffy pre-requisites:

  2. 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
    
  3. Browse http://localhost:8080/

Edit the end of server.py to change the port or IP binding.

See also Bottle Deployment.

Similar Tools

  • js-sequence-diagrams using JavaScript only.
  • yUML Which is very similar commercial alternative, with Use Case, Activity, and Class diagram support (and not a so great mobile support).
  • PlantUML An OpenSource Java solution, also text based which supports most UML diagrams with a more classic look (and not a so great mobile support).
  • nomnoml A UML class diagram using JavaScript (only).
  • draw.io and Lucidchart are also online solutions but not auto-generated from text.

scruffy-server is good for lean short UML diagrams even from a mobile phone or tablet.

Troubleshooting FAQ

Why is there no password protection or ACL?

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.

The UML image doesn't render properly!

Check that the user running server.py can execute Scruffy suml command.

Text looks like blocs, Pango font Warnings!

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.

How to change the UML font and style?

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.

Feedbacks

Improvement ideas and pull requests are welcome via Github Issue Tracker.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].