Cronhoster
Scheduled scripts, self-hosted. A folder of crons, mirrored to your own server.
<cronhoster-config-contentRoot>/
digest/ one cron
cronhoster-cron-handler.js the entry point the server runs
cronhoster-cron-settings.json when it runs, and how many may overlap
node_modules/ its own bundled dependencies
backup/ another cron
cronhoster-cron-handler.js
cronhoster-cron-settings.json
_digest/ the staged next version (a leading _ keeps it local)
cronhoster-cron-handler.js
cronhoster-cron-settings.json
How it works
Create and test your crons locally, and when you are ready the local scripts mirror them up to the server, which runs each on its schedule.
A cron is a directory
A directory with a cronhoster-cron-handler.js and a
cronhoster-cron-settings.json. The settings name the cron's runs; the handler is what
runs.
Your own runner
The server reads the clock once a second and runs a cron's handler when its settings match, inside its own dedicated Node service. Times are UTC.
Named runs, controlled overlap
Each cron lists named runs, each a schedule of month, day, hour, minute and second. A cron runs one
handler at a time by default, or up to a maxConcurrent you set.
Self-contained, versioned by rename
Every cron is a complete little world of its own, carrying every script and library it needs.
Everything in one directory
The server runs cronhoster-cron-handler.js; every library, config or vendored module it
imports sits right beside it. A cron is uploaded once, whole, and then stays exactly as it was
uploaded.
A new version is a new directory
Stage the next version as _<name>; the leading _ keeps it local while
you test. Drop the underscore to go live, then remove the old directory.
Part of the Localhoster family
Cronhoster is one of a set of small, self-hosted services that all work the same way: a folder of content on your machine, mirrored to your own server.