← notes

A daily report on a systemd timer instead of a crontab line

Aug 13, 2026

A daily go-to-market report that runs itself and puts the numbers somewhere I will actually see them.

revenue.py, traffic.py and post_linear.py do the pulling, with apps.toml as the registry of what gets reported, so adding a property is a config edit rather than a code change. The scripts are unremarkable. deploy/ is the part worth keeping: a systemd .service and .timer rather than a crontab line. Persistent=true catches a run missed while the machine was off, which cron skips silently. OnCalendar is readable where five crontab fields are not. Output lands in the journal with per-run boundaries instead of mailed stdout nobody reads. EnvironmentFile keeps credentials out of the unit and out of the process arguments, with file permissions as the actual access control.

The written playbook carries the judgment about which number to look at first, which is the part that is hard to rebuild.