Images
Each release also publishes
:<version> and :<version>-agent. To build it yourself from the repo: docker build -f docker/Dockerfile -t appeeky-spec . (--build-arg AGENT=1 for the agent).
Routines
Pick one as the container command or with
MODE=<routine>.
On your own server
Putdocker/docker-compose.yml and a .env filled from docker/.env.example in one folder:
push starts following main. Any Linux VM works; the routines run for a minute and exit, so the smallest plan is enough. Give the weekly review a little more memory. For more than one app, copy the service and give each its own env file.
.env
What each own key does and costs: On your own keys.
How push works
push remembers the last commit it handled as the appeeky-spec/pushed tag in the repo. Replace the machine and it carries on from there.
- The first run only sets the tag. Whatever is on
maintoday is never pushed; only merges after that are. - When a merge adds social drafts or UGC briefs, it sends the posts and makes the clips (
--localwhenFAL_KEYis set), then commits. - When a merge changes
appeeky/store/orappeeky.spec.yaml, it runspush --yeswith the commit subject as the note, and commits the release. - A change the store cannot take yet (a new name or subtitle without a new App Store version) keeps the tag where it was, so the next run tries again once the version exists. A failed run also leaves the tag.
Railway and Fly.io
Deploy the same image as a worker with no public port, set the variables from the.env file as service variables, and use schedule as the start command. It behaves exactly like the VM. Render and other container hosts work the same way.

