notify — push a line to your phone / any subscriber (in-RAM pub/sub over HTTP) PUBLISH (producer — anything with curl): echo "build done" | curl --data-binary @- https://fleet-notify.0exec.com/mybuilds long-job 2>&1; echo done | curl --data-binary @- https://fleet-notify.0exec.com/mybuilds curl --data-binary @- 'https://fleet-notify.0exec.com/mybuilds?title=CI' <<< "deploy green" # add a title SUBSCRIBE (any device — streams messages live, one per line): curl -N https://fleet-notify.0exec.com/mybuilds # replays the last ~20, then streams new ones curl -N 'https://fleet-notify.0exec.com/mybuilds?since=now' # only messages published from now on curl -N 'https://fleet-notify.0exec.com/mybuilds?since=all' # everything still buffered, then live PHONE PUSH (two ways): 1. Keep a terminal open on the device: curl -N https://fleet-notify.0exec.com/mybuilds 2. Install the ntfy app, subscribe to the topic "mybuilds". If this server has NTFY_URL=https://ntfy.sh configured, every publish is ALSO forwarded to ntfy.sh/mybuilds, so the app gets a real push notification. Notes: * The topic name IS the address — there's no token. Pick an unguessable topic (e.g. a long random string) if you want it private. * Each message is held in RAM in a small per-topic ring (~last 20). A late subscriber still catches the most recent publishes via replay. * Slow subscribers are dropped rather than blocking the publisher. * Max message 8 KiB — these are lines, not files. Use go-fleet-pipe for blobs. * Idle topics (no traffic for ~2h) are reclaimed automatically.