Jodot is your personal/team duty runner. Delegate software related duties to Jodot!
Jodot is a long-running process that executes duties that are delegated to it. The current version of Jodot supports scheduled duties. It should support event based duties as well as one-off duties.
Jodot is suitable for all kinds of duties/tasks/workflows that you may wish to automate. Jodot duties are essentially npm packages or Node.js modules. The idea is to tap onto the massive npm repository of functions and modules to easily assemble automation scripts (duties).
Run Jodot within your environment of choice. Since Jodot is open source and you maintain complete control of how it is ran, duties delegated to it can be much more personal/confidential than automation on hosted solutions.
Some ideas for duties:
Essentially, npm and Node.js is your limit! Duties can be for individuals or entire organisations.
Well, at this point. You may think, I could do this with Node.js, npm and cron or some other services? Well, you could, but in any case, Jodot provides you with an easy framework to structure your automation duties. It:
npm install -g jodot
Create a duties.hjson file that list all the duties that you want Jodot to be responsible for. See the sample duties.hjson for an example. Run Jodot where duties.hjson reside.
Duties are essentially npm packages that comply to the way a Jodot duty should be written. There isn't much to writing a duty really. See Writing a Jodot duty.
It is very easy to write Jodot duties. If you know how to code in Node.js, then you will know how to write a Jodot duty. There's only thing that all Jodot duty must have:
It must implement the callback that the (child) process should call whenever a message is received. The duty is performed within this callback function. See jodot-alive for an example.
If you want to share your duty, there's two more things that you'll need to do. See next section.
The more Jodot duties are shared by its users, the more useful it will become. Help grow Jodot's usefulness by sharing duties that you had composed. You can share a Jodot duty by specifying "jodot" as a dependency within its package.json.
Here's a list of publicly available duties that you can configure for your own automation needs.