Cronhoster

Scheduled scripts, self-hosted. The filename is the schedule.

cron/
  digest.every.30m.cron.js     →  every 30 minutes
  backup.daily.0300.cron.js    →  daily at 03:00
  sweep.hourly.15.cron.js      →  at :15 past every hour
  ping.every.30s.cron.js       →  every 30 seconds
  _draft.every.10s.cron.js     →  ignored (leading _ = local only)
How it works The family

How it works

The same drop-a-folder idea as localhoster, but the payload is work to run on a clock. Keep a folder of plain JavaScript on your machine; name a file for when it should run and a stateless client mirrors the folder to your own server, where a small Node runner executes each script on time.

The name is the schedule

A top-level file called <name>.every.30m.cron.js or <name>.daily.0300.cron.js runs on that cadence. No crontab, no dashboard — the schedule lives in the filename.

Your own runner

Scripts run inside a dedicated Node application, not the box's system cron. It owns timing, overlap and logging, so behaviour is identical on your laptop and on the server.

One run at a time

Each script is single-instance by base name: if a run is still going when the next tick arrives, the tick is skipped rather than piling a second copy on top.

Just a folder of JavaScript

The only special files are the entry points — everything else in the folder is yours to organise.

·

Bring your own modules

Only top-level files matching the schedule pattern are run. Shared libraries, helpers and sub-folders sync alongside and are imported normally — they are never invoked on their own.

·

Develop in place

Prefix a file with _ and the runner ignores it, so you can write and test a job locally before it goes live. Drop the underscore when it's ready.

Better together

On its own, cronhoster just runs code on a clock. Pair it with its siblings when a job needs data, identity or a public face.