// PLATFORM CRON

ONE DISPATCHER.
EVERY MINUTE.

The problem is not “crontab as a service for the internet.” The problem is systemd timers scattered across this VPS. Kronos stores jobs in kronos_jobs, shows them in a browser, and a single systemd dispatcher fires HTTP endpoints every minute, recording kronos_runs. Blueprints expose a URL; Kronos calls it. No SSH to tweak a schedule. Admin gate: any logged-in user may read list/detail/stats/history; create, update, delete, toggle, run-now require current_user.is_admin. No Kronos-specific env vars. Failure alerts that still call Telegram are skipped without tokens — prefer Herald. This is not GitHub Actions and not a Kubernetes CronJob UI.

Premier DB schedules Admin mutate 1-minute dispatcher
Open Kronos How it works
1m
Dispatcher
Admin
Mutations
Read
Any login
0
App env vars
// HOW IT WORKS

Five steps from an HTTP endpoint to a run row

If a job 500s, the run history is the truth, not a missing systemd journal.

01
Expose an endpoint
Blueprint localhost route, often X-Cron-Secret or loopback.
02
Register the job
Admin creates kronos_jobs: URL, schedule, enabled.
03
Wait for the minute
Dispatcher GETs due jobs. Not an in-process APScheduler inside gunicorn.
04
Read the run
kronos_runs status/timing/body. Non-admins can still read.
05
Run now or toggle
Admin only. Failures should Herald, not silent Telegram.
Open Kronos
// JOBS

A grid of HTTP clocks — CSS mock

Not crontab.guru as a product. Not GitHub Actions YAML.

meltuc.tech/kronos/app — CSS mock, not a product screenshot
Jobshl_auto_capture
When0 7 * * *
Enabledon
// RUNS

History is a table, not a vibe

Last status, duration, error body. Login to read; admin to fire.

meltuc.tech/kronos/app · runs — CSS mock, not a product screenshot
Tablekronos_runs
Mutateis_admin
Readany user
// DISPATCHER

systemd every minute, HTTP out

Kronos does not SSH into other hosts. It calls URLs on this factory.

localhost · dispatcher — CSS mock, not a product screenshot
Tick60s
TransportHTTP
Secretsplatform .env
// ADMIN GATE

Look vs touch

If a non-admin sees Run now disabled, that is the design.

// WHAT IT REFUSES

No public job list. No Telegram-required alerting.

Will not let anonymous users read schedules. Will not replace Herald.

// WHO THIS IS FOR

Platform admins tired of unit files

People who need one calendar of factory jobs. App users do not add cron here.

// FEATURES

Schedule, fire, remember

No invented DAG editor.

🗄
kronos_jobs
Schedules in Postgres.
📜
kronos_runs
Every fire recorded.
⏱
Minute dispatcher
systemd, not gunicorn.
🔐
Admin mutate
create/update/delete/toggle/run-now.
👁
Read for members
list/detail/stats/history.
🌐
HTTP jobs
Blueprints expose URLs.
🛡
SWIP
Public landing only.
📣
Herald > Telegram
Tokens may be unset.
🚫
No extra env
metadata env_vars empty.
// GET STARTED

Open the scheduler. Don’t SSH for a cron.

Login to read. Admin to change.

Open Kronos

Requires a MelTuc account. Create one free.

// SAID SLOWLY

What stays true over time

DB-driven scheduled job manager — one dispatcher timer for platform crons. Health stays cheap. If this page disagrees with the signed-in app, trust the app — the product contract and tests enforce that rule.