From f058e83da43b0b661b45a7bd4c82b49c57e61d93 Mon Sep 17 00:00:00 2001 From: St33v Date: Tue, 9 Jun 2026 13:04:04 +1000 Subject: Add IDR713 radar fetch and APNG loop radarFetch.sh fetches BOM IDR713 transparencies (24h cache) and the last six 6-minute echo frames, composites them via cached lower/upper plates, and publishes an APNG loop to /srv/www/radar/. systemd: radar.{service,timer} on a 6-min cadence, with retry units mirroring the synoptic pattern. nginx: new radar.pestrel.com vhost (still commented in setup.sh until DNS propagation is confirmed). setup.sh provisions radar dirs, installs radar units, enables timer. deploy.sh accepts synoptic|radar arg. Parameterised on product code; adding another radar is a one-line config change. Spec: doc/bom-radar-spec.md. Co-Authored-By: Claude Opus 4.7 --- systemd/radar-retry.service | 12 ++++++++++++ systemd/radar-retry.timer | 8 ++++++++ systemd/radar.service | 13 +++++++++++++ systemd/radar.timer | 11 +++++++++++ 4 files changed, 44 insertions(+) create mode 100644 systemd/radar-retry.service create mode 100644 systemd/radar-retry.timer create mode 100644 systemd/radar.service create mode 100644 systemd/radar.timer (limited to 'systemd') diff --git a/systemd/radar-retry.service b/systemd/radar-retry.service new file mode 100644 index 0000000..b878303 --- /dev/null +++ b/systemd/radar-retry.service @@ -0,0 +1,12 @@ +[Unit] +Description=Retry BOM radar fetch (after failure) + +[Service] +Type=oneshot +User=st33v +WorkingDirectory=/var/lib/radar +ExecStart=/opt/radar/radarFetch.sh +ExecStopPost=/bin/sh -c 'STATUS=SUCCESS; [ "$$EXIT_STATUS" != "0" ] && STATUS=FAILURE; logger -t radar-retry -p user.err "radar-retry $$STATUS exit=$$EXIT_STATUS"' +SyslogIdentifier=radar-retry +StandardOutput=journal +StandardError=journal diff --git a/systemd/radar-retry.timer b/systemd/radar-retry.timer new file mode 100644 index 0000000..d7c8d9b --- /dev/null +++ b/systemd/radar-retry.timer @@ -0,0 +1,8 @@ +[Unit] +Description=Retry radar fetch 2 minutes after failure + +[Timer] +OnActiveSec=2min + +[Install] +WantedBy=timers.target diff --git a/systemd/radar.service b/systemd/radar.service new file mode 100644 index 0000000..8e9dd40 --- /dev/null +++ b/systemd/radar.service @@ -0,0 +1,13 @@ +[Unit] +Description=Fetch BOM radar and publish loop APNG +OnFailure=radar-retry.timer + +[Service] +Type=oneshot +User=st33v +WorkingDirectory=/var/lib/radar +ExecStart=/opt/radar/radarFetch.sh +ExecStopPost=/bin/sh -c 'STATUS=SUCCESS; [ "$$EXIT_STATUS" != "0" ] && STATUS=FAILURE; logger -t radar -p user.err "radar $$STATUS exit=$$EXIT_STATUS"' +SyslogIdentifier=radar +StandardOutput=journal +StandardError=journal diff --git a/systemd/radar.timer b/systemd/radar.timer new file mode 100644 index 0000000..c147481 --- /dev/null +++ b/systemd/radar.timer @@ -0,0 +1,11 @@ +[Unit] +Description=Run BOM radar fetch every 6 minutes + +[Timer] +OnBootSec=2min +OnUnitActiveSec=6min +AccuracySec=15s +Persistent=true + +[Install] +WantedBy=timers.target -- cgit v1.3