← back to Dw Marketing Reels
Add nightly runner (gated plist), README, deploy config
7630cbd885c41ff5a67c3f2204b197dca7c0efee · 2026-07-12 10:21:03 -0700 · Steve Abrams
Files touched
A README.mdA deploy/com.steve.dw-marketing-reels.plistA scripts/cron-run.sh
Diff
commit 7630cbd885c41ff5a67c3f2204b197dca7c0efee
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Sun Jul 12 10:21:03 2026 -0700
Add nightly runner (gated plist), README, deploy config
---
README.md | 24 ++++++++++++++++++++++++
deploy/com.steve.dw-marketing-reels.plist | 10 ++++++++++
scripts/cron-run.sh | 5 +++++
3 files changed, 39 insertions(+)
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..117ff38
--- /dev/null
+++ b/README.md
@@ -0,0 +1,24 @@
+# DW Marketing — New Arrivals Reels
+
+Auto-generates a portrait (1080×1920) social reel from the LIVE Designer Wallcoverings
+**New Arrivals** collection using HeyGen HyperFrames (HTML→MP4, **$0 local render**).
+Owned by DW Marketing (vp-dw-marketing).
+
+## Run
+```
+npm run fetch # pull collections/new-arrivals/products.json -> data/new-arrivals.json
+npm run build-reel # generate composition + render MP4 -> reels/ (REEL_COUNT=6 REEL_SECS=2.4)
+npm start # console on http://127.0.0.1:9848 (Basic Auth admin / DW2024!)
+```
+
+## Console (:9848, Basic Auth)
+- Reels gallery (created date+time chip, per-reel product list, download)
+- Current New Arrivals grid with **sort + density** controls (persisted)
+- Buttons: **Refresh feed** / **Generate reel** (live status)
+
+## Nightly (GATED — not installed)
+`deploy/com.steve.dw-marketing-reels.plist` → refreshes feed + builds a reel at 07:10.
+Load with: `launchctl bootstrap gui/$(id -u) deploy/com.steve.dw-marketing-reels.plist`
+
+## Public deploy (GATED)
+`marketing.designerwallcoverings.com` → Kamatera. `.deploy.conf` + subdomain DNS/SSL are Steve-gated.
diff --git a/deploy/com.steve.dw-marketing-reels.plist b/deploy/com.steve.dw-marketing-reels.plist
new file mode 100644
index 0000000..3a250fb
--- /dev/null
+++ b/deploy/com.steve.dw-marketing-reels.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0"><dict>
+ <key>Label</key><string>com.steve.dw-marketing-reels</string>
+ <key>ProgramArguments</key>
+ <array><string>/Users/macstudio3/Projects/dw-marketing-reels/scripts/cron-run.sh</string></array>
+ <key>StartCalendarInterval</key><dict><key>Hour</key><integer>7</integer><key>Minute</key><integer>10</integer></dict>
+ <key>StandardOutPath</key><string>/tmp/dw-marketing-reels.out.log</string>
+ <key>StandardErrorPath</key><string>/tmp/dw-marketing-reels.err.log</string>
+</dict></plist>
diff --git a/scripts/cron-run.sh b/scripts/cron-run.sh
new file mode 100755
index 0000000..5b77b0a
--- /dev/null
+++ b/scripts/cron-run.sh
@@ -0,0 +1,5 @@
+#!/bin/zsh
+export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
+export HYPERFRAMES_SKIP_SKILLS=1
+cd "$(dirname "$0")/.."
+node scripts/fetch-new-arrivals.mjs && node scripts/build-reel.mjs
← fc8c20e DW Marketing new-arrivals reels: HyperFrames reel generator
·
back to Dw Marketing Reels
·
Build-gate for read-only public deploy + nightly push to Kam a1ba7d4 →