Automation & Jobs 1 service 512 MiB RAM 2 GB disk

Cronicle

Cron with a UI: schedules, run history, chaining, retries, and alerts - in one 512 MiB container.

One-click deploy, from $5/mo on a Miget plan.

Every team has the crontab nobody remembers writing, on the server nobody dares reboot. Cronicle replaces it with something visible: a web UI where jobs have schedules, logs, run history, timelines, retries, chaining, and alerts when things fail - the operational basics crontab never had.

This template runs single-server Cronicle in one container with two small volumes (job data and logs). No required variables - but the UI is public and ships with admin/admin, so changing that password is step one after deploy.

Jobs run inside the container via shell or HTTP plugins: apk add what your scripts need, or - the more platform-native pattern - use HTTP jobs to poke endpoints on your other apps in the project, turning Cronicle into the scheduler for your whole stack.

#what you get

  • Web UI: schedules, live logs, run history, and a timeline view
  • Retries, timeouts, chaining (run B after A), and concurrency limits
  • Email and webhook alerts on failure
  • Shell and HTTP request plugins out of the box
  • Job data and logs on persistent volumes
  • Single 512 MiB container - cron should not need a cluster

#topology

ServiceRolePublic
croniclescheduler + web UI (:5000)yes - change admin/admin immediately

#miget sizing

// this stack needs

512 MiB RAM · 2 GB disk · 1 service

Scheduling is nearly free; RAM is consumed by what your jobs do. Shell jobs that need real resources deserve their own app - drive them via HTTP jobs instead.

Hobby - recommended fit

$5/mo

1 vCPU · 512 MiB · 10 GiB disk

Headroom for your own apps: 1 GiB at $7/mo

Professional - production

$22/mo

1 vCPU · 2 GiB · 10 GiB disk

Dedicated resources, production SLOs - plan details

One Miget plan is a fixed pool of compute - the whole stack (managed databases included) deploys inside it, and anything left over runs your other apps. No per-service or per-seat math.

#vs. the managed service

What the hosted equivalents charge, against the flat Miget plan this stack fits on. Prices as of June 2026, sources linked.

ServicePlanMonthlyWhat you get
Cronicle on Miget 512 MiB plan$5this whole stack, flat - no usage meters, and room left for your own apps
CronitorBusiness (pay-as-you-go)~$20$2/monitor - ~10 monitored jobs; monitoring only, does not run your jobs
Healthchecks.ioBusiness~$20100 checks - again, monitoring; the scheduler is still on you

There is no true SaaS twin: hosted products monitor crons, Cronicle runs and monitors them.

#vs. other PaaS

Estimated monthly cost of running this exact stack (512 MiB RAM, 2 GB disk, 1 container) elsewhere, from published June 2026 rates.

PlatformEst. monthlyNotes
Miget $5 flat compose stacks first-class: one deploy, dedicated vCPU, managed Postgres/Valkey, volumes and TLS all included in the plan
Heroku ~$25 no volumes; nothing between 1 GB ($50) and 2.5 GB ($250) dynos - 2 GB containers cost far more than shown
DO App Platform ~$11 no persistent volumes - stateful containers need managed DBs/Spaces (base $5 Spaces included here)
Render ~$8 per-service instances (0.5 GB $7, 2 GB $25) - every container is its own paid service
Railway ~$5 usage-based ($10/GB RAM-mo); vCPU billed separately at $20/vCPU-mo on top
Fly.io ~$3 cheapest sticker price - but burstable shared CPUs (1/16 core; dedicated vCPUs cost ~2-3×), no compose deploys (one app per container, manual wiring), managed DBs billed extra

Estimates assume RAM fully allocated at published on-demand rates - and sticker price isn't the whole comparison: the cheaper rows buy burstable shared CPUs, per-service wiring instead of a compose deploy, and managed databases billed separately. Heroku and DO App Platform have no persistent volumes at all - stateful stacks like this one need workarounds there.

#deploy it

On Miget

  1. Create a Compose Stack in app.miget.com pointing at the templates repository
  2. Set the stack path to cronicle
  3. No required variables - deploy as-is
  4. Deploy. Miget layers compose.miget.yaml (RAM, privacy, volumes, managed services) automatically

Locally first?

Every template is portable, vanilla Docker Compose - the Miget overrides are ignored locally:

git clone https://github.com/deployable-sh/stacks
cd miget-compose-templates/cronicle
docker compose up -d

Same files, same behavior. The template README covers connection strings and scaling notes.

#faq

Why Cronicle instead of plain cron or platform cronjobs?

Visibility and operations: run history, output logs, failure alerts, retries, and chaining in a UI anyone on the team can read. Platform-native cronjobs are great for app-internal tasks; Cronicle shines as the central, observable scheduler across many services.

How do jobs interact with my other applications?

Two patterns: HTTP plugin jobs that call endpoints on other apps in the project by service name (recommended), or shell jobs inside the Cronicle container - apk add your tooling in a derived image if scripts need more than busybox.

Is the default login really admin/admin?

Yes - and the UI is public on your app domain, so change it immediately after first deploy (Admin → Users). Treat that as part of the deploy checklist, not a someday task.

Can Cronicle run distributed across multiple servers?

Upstream Cronicle supports multi-server clusters, but this template deliberately runs single-server mode - keep replicas at 1. For one scheduler coordinating HTTP jobs, that is the right shape.

Ship Cronicle today

One compose stack, 512 MiB of RAM, from $5/month flat, and it runs on your laptop with the same files.