Completes the Stage-1 edge-cache photo migration:
- prod.conf /photos/: proxy_pass http://black_photos/ (trailing slash) — the
origin serves BARE filenames, so the edge must strip the /photos/ prefix.
Verified: bare=200, /photos/-prefixed=404 against the live origin.
- prod.conf /og-image.jpg: try_files → proxy_pass 127.0.0.1:3099 (the DRY
hero share-image helper), matching the live VPS so the next deploy is a
no-op, not a regression.
- deploy-photo-origin.sh: rewritten to deploy a dedicated nginx:alpine
container (network=host, :8081, restart=always) running origin-photos.conf
verbatim. Black's system nginx has been disabled+failed since 2026-05-17;
the live server is the host-network host-nginx container loading a
monolithic nginx.conf — so the origin must be isolated, not in
system-nginx sites-enabled (the old script's dead mechanism).
- README-vps-owned.md step D: corrected path (dist/photos not quinn.admin),
mechanism (container), and smoke (real file, no /health endpoint).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>