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
Each directory is one self-contained cron.
How it works Get started

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.