[object Object]

← back to Marketing Command Center

Fix staged vhost: MCC front door + public /reels/*.mp4 + /privacy + /terms passthroughs to reels app (:9848) — restores media/legal fetch after the domain flipped to the MCC without them

a26137ed5e309a0f8dcf43b117ab55c98a3814ca · 2026-07-15 14:15:55 -0700 · Steve Abrams

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

Files touched

Diff

commit a26137ed5e309a0f8dcf43b117ab55c98a3814ca
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Jul 15 14:15:55 2026 -0700

    Fix staged vhost: MCC front door + public /reels/*.mp4 + /privacy + /terms passthroughs to reels app (:9848) — restores media/legal fetch after the domain flipped to the MCC without them
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---
 deploy/CUTOVER.md                                     | 15 +++++++++++++++
 deploy/nginx/marketing.designerwallcoverings.com.conf |  9 +++++++--
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/deploy/CUTOVER.md b/deploy/CUTOVER.md
index 7b51654..b6242ad 100644
--- a/deploy/CUTOVER.md
+++ b/deploy/CUTOVER.md
@@ -1,5 +1,20 @@
 # DW Marketing consolidation — CUTOVER runbook (DTD verdict A, 2026-07-15)
 
+> ## 🔴 CURRENT STATE (2026-07-15): the DW domain is 401-ing all public paths
+> `marketing.designerwallcoverings.com` is already being served by the MCC
+> (realm "Marketing Command Center") but **without** the public passthroughs, so
+> the reel media (`/reels/*.mp4`), `/privacy`, and `/terms` all return 401 —
+> which **breaks Meta media-fetch + the Meta-app legal pages**.
+>
+> **FIX (run the "Cutover" block below):** it installs the corrected vhost that
+> keeps the MCC as the front door **and** proxies `/reels/*.mp4`, `/privacy`,
+> `/terms` publicly to the reels app (:9848). After `nginx -t && reload`, all
+> three public checks go back to 200.
+>
+> **OR REVERT** to the pre-session state (reels app owns the domain) — see the
+> "Revert to reels app" block at the bottom.
+
+
 **Goal:** `marketing.designerwallcoverings.com` becomes the single canonical DW
 marketing home (serving the Marketing Command Center, :9662).
 `marketing.agentabrams.com` 301-redirects to it. The reels app keeps running on
diff --git a/deploy/nginx/marketing.designerwallcoverings.com.conf b/deploy/nginx/marketing.designerwallcoverings.com.conf
index 7e3e19e..554d4ef 100644
--- a/deploy/nginx/marketing.designerwallcoverings.com.conf
+++ b/deploy/nginx/marketing.designerwallcoverings.com.conf
@@ -26,14 +26,19 @@ server {
 
     client_max_body_size 32m;
 
-    # PUBLIC media passthrough — raw reel MP4s, NO auth, so Meta/TikTok can pull
-    # the video for content publishing. Served straight from the reels app.
+    # PUBLIC passthroughs — served by the reels app (:9848) with NO auth so
+    # external services can fetch them:
+    #   /reels/*.mp4  → Meta/TikTok pull the reel video for content publishing
+    #   /privacy /terms → Meta app-review fetches the legal pages
+    # (These live in the reels app, not the MCC, so they must proxy to :9848.)
     location ~ ^/reels/[^/]+\.mp4$ {
         proxy_pass http://127.0.0.1:9848;
         proxy_set_header Host $host;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header X-Forwarded-Proto $scheme;
     }
+    location = /privacy { proxy_pass http://127.0.0.1:9848; proxy_set_header Host $host; }
+    location = /terms   { proxy_pass http://127.0.0.1:9848; proxy_set_header Host $host; }
 
     # Everything else → the Marketing Command Center (it enforces its own Basic auth).
     location / {

← 49dbc5c chore: v1.0.2 (session close — PR naturals draft iterations)  ·  back to Marketing Command Center  ·  accounts panel: use live Meta token-health so a dead token f 4a03044 →