← back to Wallpaperdistributors

DEPLOY.md

37 lines

# wallpaperdistributors.com — deploy runbook

**Status (2026-05-31):** Shipped as a **thin, vendor-free trade bridge** (DTD verdict B +
Steve's call). The original standalone *distributor directory* build is **archived under
`_legacy-directory/`** — it was a hard violation of the "never DW vendors in public UI"
rule (its content was vendor brand names; DW's own record exposed its lines). The
served app is now a single static DW-branded trade lander → `designerwallcoverings.com/pages/trade`.

- Served homepage: vendor-leak scanned → **0 hits**.
- Legacy routes `/distributor/:id` and `/line/:line` → **404** (archived, not served).

## Registrar / DNS facts
- Registrar **GoDaddy** · expires 2027-11-06 · **locked + privacy ON**
- Nameservers: `ns5.afternic.com` / `ns6.afternic.com` (Afternic parking)
- Target host: Kamatera `45.61.58.125`, app port **9932**

## STEP 1 — Take it off Afternic  *(Steve — account action)*
GoDaddy → the domain → *List for Sale / Afternic* → remove listing.

## STEP 2 — Repoint DNS  *(Steve — registrar action / DNS is classifier-gated)*
GoDaddy → unlock → GoDaddy default nameservers → **A `@` → 45.61.58.125** (+ `www`) →
re-lock. Verify `dig +short wallpaperdistributors.com` = `45.61.58.125`.

## STEP 3 — Deploy to Kamatera  *(Claude, once DNS resolves)*
```sh
# EXCLUDE the legacy vendor-laden directory build from prod — never deploy _legacy-directory/
rsync -az --exclude node_modules --exclude .git --exclude _legacy-directory \
  ~/Projects/wallpaperdistributors/ my-server:/root/Projects/wallpaperdistributors/
ssh my-server 'cd /root/Projects/wallpaperdistributors && npm install --omit=dev'
ssh my-server 'cd /root/Projects/wallpaperdistributors && pm2 start server.js --name wallpaperdistributors && pm2 save'
# nginx vhost → 127.0.0.1:9932 ; certbot --nginx -d wallpaperdistributors.com -d www.…
```

> If a real distributor directory is ever wanted, the legacy build in `_legacy-directory/`
> must be vendor-scrubbed first (rename/neutralize every `lines_carried` brand) before it
> can be served — do not deploy it as-is.