The scheduler
Manage recurring cron jobs — scheduled backups, cleanup sweeps, and your own — from the admin.
Updated
Recurring work in Railbase runs on persisted cron schedules (the _cron
collection). The Settings → Scheduler screen (/_/settings/scheduler) is the
admin surface for all of them — the housekeeping jobs the core ships, plus any you
add. It's the UI counterpart to the railbase cron CLI, and it's where scheduled
backups live now that they've moved off the Backups screen.
What's on the screen
The Scheduler lists every cron row on your instance:
- Your schedules — anything you add (a nightly report, a custom cleanup, a scheduled backup).
- System builtins — the core's housekeeping jobs (
cleanup_sessions,cleanup_jobs,audit_seal,audit_archive, and the like). These are visually flagged and protected: you can enable, disable, or run them now, but you can't delete them or change theirkind.
Each row shows its name, cron expression, target job kind, and enabled state.
Add or change a schedule
The New schedule drawer takes a cron expression and a job kind. It
defaults to kind = scheduled_backup, since "schedule a backup" is the primary
flow — a backup schedule also takes a small payload:
retention_days— how many past archives to keep (older ones are swept).out_dir— where the archives are written (defaults to<data-dir>/backups).
Pick a different kind to schedule cleanup or another registered handler instead.
Editing an existing schedule reopens the same drawer.
Per-row actions
- Enable / disable — pause a schedule without deleting it.
- Run now — fire the job immediately, off-schedule, to test it.
- Delete — remove one of your schedules (builtins can't be deleted).
From the CLI
The same schedules are managed with railbase cron (which, like every command
that opens the vault, needs the server stopped):
railbase cron upsert nightly-report "0 3 * * *" report.generate
railbase cron list
railbase cron run-now nightly-report
railbase cron enable nightly-report
railbase cron disable nightly-report
Note
These are the durable, operator-managed schedules. A cron added from a
JavaScript hook with $app.cronAdd(...) is a different thing — it's in-memory
and per-process, re-registered from your hook files on each reload, and does
not appear in the _cron table or on this screen. See
Jobs & cron.
See also Backups & restore for the backup side and Operating from the admin for the other day-two screens.