Skip to content

Scheduling ​

A scheduled run is one window opening: it starts when the window opens and starts no unit after it ends. A unit still running at the end stops with stopped: window ended, and what it left is published as for a quota stop.

Pick where it runs ​

This machineGitHub ActionsA container
What starts runsawaywork watch under launchd, systemd or cronA cron in your control repo's workflow runs awaywork run --scheduledawaywork watch in Docker Compose, on Coolify or a VPS
run: soon rulesWithin minutesIn the windows: no daemonWithin minutes
Attempts, skips, a push headKeptKept on a self-hosted runner; a GitHub-hosted one starts emptyKept on a volume
CodexYesSelf-hosted runners onlyYes, its login on a volume
Run lengthThe windowAbout 6 hours on a GitHub-hosted runnerThe window
Bitbucket, extendsYesNoNo
NeedsThe machine awakeA private control repo and its secretsA Docker host and its env vars

A daemon on a box of yours, the container or a machine you ssh into, also takes your laptop's commands, /away included: From your laptop.

In a terminal, awaywork schedule install asks where:

◆  Where should it run on a schedule?
│  ● this machine
│  ○ GitHub Actions, from the repo in this directory
│  ○ a container (Docker Compose, e.g. Coolify), from the repo in this directory
└

--with answers up front; without a terminal it takes this machine. Pick one per machine: with a local schedule and a runner on the same machine, both start at the window and work the same items on the same state dir. Moving to the runner, run schedule remove outside the control repo first; inside it, that deletes the workflow too.