Cron Jobs on Fly.io
Fly.io has no built-in cron scheduler, so you run one yourself: the common pattern is a process group running supercronic (a container-friendly cron) inside your app, or a dedicated scheduled Machine started on a timer.
supercronic process
Add a crontab file to your image and a process in fly.toml:
[processes]
app = "your-server"
cron = "supercronic /app/crontab"
The crontab file uses normal syntax: 0 * * * * /app/task.sh. supercronic logs to stdout, so runs show up in fly logs.
Why not plain cron
System cron doesn't log to the container's stdout and expects an init system. supercronic is built for containers and is the recommended approach on Fly.
Scheduled Machines
For infrequent heavy jobs, create a separate Machine and start it on a schedule with fly machine run from an external trigger, so it isn't billed while idle.
FAQ
Does Fly.io have cron?
Not built in. The usual pattern is a cron process group running supercronic inside your app, or a separate scheduled Machine.
Why use supercronic instead of cron on Fly.io?
supercronic is container-friendly: it logs to stdout (so jobs appear in fly logs) and doesn't need an init system, unlike system cron.
How do I see Fly.io cron job output?
Run supercronic as a process in fly.toml — it writes to stdout, so job output appears in fly logs.