A webserver that can turn command-line applications into a job system.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
jobson-deb 0.1.0-beta.1: beta: Added support for 'int', 'long', 'float', and 'do… Oct 6, 2018
jobson-docs 0.1.0-beta.1: beta: Added support for 'int', 'long', 'float', and 'do… Oct 6, 2018
jobson-nix 0.1.0-beta.1: beta: Added support for 'int', 'long', 'float', and 'do… Oct 6, 2018
jobson
.gitignore Changed Jobson to a multimodule maven project: Jun 11, 2018
.travis.yml Added feature branches to travis (so they can be CIed) Aug 10, 2018
LICENSE
NOTICE Initial public release Oct 5, 2017
README.md
pom.xml

README.md

jobson

Documentation

Build Status

A webserver that turns command-line applications into a job system. Once hosted, Jobson UI can then automatically generate UIs for any hosted application.

Jobson needs a YAML description file for each application it hosts:

name: Trivial Application
description: Echoes supplied message to stdout

expectedInputs:
- id: message
  type: string
  name: Message
  description: The message to echo
  default: Hello, world!

execution:
  application: echo
  arguments:
  - ${inputs.message}

Install

  • Ensure you have java 8 on your platform (e.g. sudo apt install openjdk-8-jre)
  • Find an appropriate release for your platform
  • Install it, if it's pre-packed for your platform (e.g. .deb on ubuntu). Otherwise, manually install it (below)

Manual Install

  • Download a binary tarball for your platform (e.g. *nix) from the releases page (e.g. jobson-nix-0.0.15.tar.gz)
  • Unzip the tarball wherever you want jobson to be installed (e.g. /opt)
  • (optional) Add the top-level jobson executable to the PATH (e.g. ln -s jobson /usr/local/bin/jobson)

Quickstart

jobson new --demo
jobson serve config.yml

See documentation for a comprehensive walkthrough.

Build

Building the Jobson jar for development requires maven and jdk (8+). For example:

apt install maven openjdk-8-jdk

mvn package

Building an entire release (packages, documentation, etc.) additionally requires ruby and bundler, along with some gems. For example:

apt install maven openjdk-8-jdk ruby ruby-bundler
gem install fpm

mvn package -P release

See .travis.yml for a "clean" build example.