summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
16 hoursAdd synoptic-morph: 30-day rolling morph timelapseSt33v
synopticMorph.sh: rolling-cache implementation. On each run: 1. Pick the last WINDOW_DAYS*4 charts from the archive. 2. For each adjacent pair, fill any missing pair-morph (cached at /mnt/enclave/synoptic/pairs/<chartA>__<chartB>/p_NNNN.png). 3. Evict pair dirs whose slug isn't in the current window. 4. Symlink frames into a temp seq dir with LINGER on each source chart and DWELL on the latest, fade-in 1s and fade-out 2s. 5. Encode to /srv/www/pestrel/morph.mp4 with ffmpeg/h264. Bootstrap: ~50 min CPU on first run (119 pair morphs at ~25s each). Steady state: ~1 min/cycle (1 new pair + concat + encode). synoptic-morph.service: oneshot, TimeoutStartSec=2h to cover the bootstrap, Nice=10 + IOSchedulingClass=idle so it doesn't fight the system for CPU/disk. synoptic.service gains OnSuccess=synoptic-morph.service so the chain fires automatically after each successful chart fetch. morph.html: points at /morph.mp4 now. index.html: "Three-day history" button renamed to "Monthly history", URL /morph.html. setup.sh: installs the new unit + script, provisions /mnt/enclave/synoptic/{pairs,out} when the enclave mount is present. .gitignore: drop .claude/ (transient harness state). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
21 hoursSide-quest note: migrate radar fetch to stanSt33v
Captures the deferred plan to move BOM FTP fetching off the SG VPS (cremonde) onto the AU pi (stan), with stan rsyncing finished APNGs to cremonde over WireGuard. Trigger conditions, design, and open questions documented for a future agent (or future st33v) to pick up if/when warranted. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
21 hoursMemoir: radar follow-up sessionSt33v
Captures the TLS-fallthrough fix, two more radars, cross-page nav, mobile sizing, and the Radars button on synoptic — all on 2026-06-10, day after the initial rollout. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
21 hoursAdd Canberra and Cairns radars; cross-page navSt33v
Two new product codes: IDR403 (Canberra) and IDR193 (Cairns). radar.service / radar-retry.service gain two more ExecStart= lines. Per-radar pages: nav strip at top with all four radars + a Synoptic button linking to pestrel.com; current page is highlighted. Layout switched to column flex (nav on top, image fills below) and the image now uses `width: 100%; max-width: 512px` so it fills phone viewports without upscaling beyond the BOM-native 512px on desktop. Synoptic page (index.html): "Radars" button fixed to the left edge at top 16.6%, linking to https://radar.pestrel.com/. Landing page (radar.pestrel.com/): rebalanced for four radars plus a dashed-border Synoptic button. nginx/radar.pestrel.com.conf: pulled in the certbot-managed TLS block so a fresh setup matches production state. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
42 hoursMemoir: BOM radar rollout sessionSt33v
Captures the spec → deployed-and-looping arc for IDR713 and IDR663, the three real bugs encountered (silent IM single-frame PNG, ffmpeg palette mismatch, git remote user mix-up), and a temp-file race side-quest worth hardening later. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
42 hoursAdd Brisbane radar (IDR663) alongside SydneySt33v
radar.service / radar-retry.service now invoke radarFetch.sh once per product code, prefixed with `-` so one radar's outage does not skip the other. Landing page at / links to /sydney and /brisbane; each per-radar page is the familiar black-page full-image idiom with a small corner link to its sibling. setup.sh provisions the subdirs and installs all three pages. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
45 hoursForce rgba in ffmpeg apng pipelineSt33v
Composited frames are palette-based PNGs with slightly different palettes per frame; ffmpeg's apng encoder rejected this with "Input contains more than one unique palette." Converting to rgba in the filter chain gives all frames the same pixel format. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
46 hoursUse ffmpeg apng muxer for radar loopSt33v
ImageMagick on Arch lacks the APNG png-writer; magick was silently producing single-frame PNGs. Switch to ffmpeg's concat demuxer + apng muxer, which gives proper animated APNG with per-frame durations (last frame still gets END_PAUSE). Add ffmpeg to the pacman install list in setup.sh. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
46 hoursAdd IDR713 radar fetch and APNG loopSt33v
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 <noreply@anthropic.com>
2026-03-25Update cremonde deployment and runtime checksSt33v
2026-03-15indicative lagsSt33v
2026-03-15Centre image in viewport with black backgroundSt33v
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15Resize output PNG to fit 1920x1080St33v
Renders at 300dpi then resizes to screen resolution, keeping aspect ratio. PNG remains the right format for line art and flat colour. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15Fix synopticLatest.png world-readable permissionsSt33v
magick creates files respecting the process umask; chmod 644 after mv ensures nginx can serve the file. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15Add deployment config and strengthen synopticChart.shSt33v
- Inline DeriveTime from func/deriveTimeString.sh; delete func/ - Add set -euo pipefail, quoting, and stderr for error messages - Archive PDFs to /var/lib/synoptic/archive/raw/ after conversion - Publish PNG to /srv/www/synopticLatest.png - Add systemd units: synoptic.{service,timer}, synoptic-retry.{service,timer} - Timer fires at 02:10, 08:10, 14:10, 20:10 UTC (2h after BOM publish slots) - Add nginx site config for pestrel.com - Add setup.sh (run once on VPS as root) and deploy.sh (run from cr4y) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15spec for claude to setup pestrelSt33v
2026-03-15ready for claudeSt33v
2022-01-11rudimentary handling of "no file at remote site"St33v
2022-01-04can download and convert when executed manuallySt33v
2022-01-04greater than or EQUAL toSt33v
2022-01-04func might work - first trySt33v
2022-01-04Merge pull request #1 from F3RR3T/add-license-1St33v
Create LICENSE
2022-01-04Create LICENSEadd-license-1St33v
2022-01-04Create README.mdSt33v
2022-01-04gitignoreSt33v
2022-01-04bare bonesSt33v