Drop the demo.lumbridgecorp.com alias; one hostname
ci / web (push) Successful in 2m59s
ci / python (push) Successful in 4m3s

The site is demo.primeintellectgrowth.com and nothing else. The Caddy block,
the deploy smoke test, the mirrored Caddyfile and the docs all carried the
second name; all four no longer do.
This commit is contained in:
karti-ai
2026-08-28 21:48:30 -07:00
parent 4bec0724db
commit ba9d7c874e
4 changed files with 4 additions and 35 deletions
+3 -20
View File
@@ -10,30 +10,13 @@ pnpm build && bash deploy/deploy.sh
| | |
|---|---|
| Hostnames | `demo.primeintellectgrowth.com` (canonical) and `demo.lumbridgecorp.com` (alias) |
| Hostname | `demo.primeintellectgrowth.com` — the only one |
| Host | cloud-2, `ubuntu@100.92.185.76` (tailnet only) |
| Root | `/var/www/demo.primeintellectgrowth.com` |
| Snapshots | `…-rollbacks/`, last 10, hard-linked |
| DNS | OCI zone `primeintellectgrowth.com``170.9.14.61`, explicit A record, no wildcard. The alias needs no record: `lumbridgecorp.com` has a wildcard |
| Caddy | one block for both names, mirrored in `Caddyfile.demo` |
| DNS | OCI zone `primeintellectgrowth.com``170.9.14.61`, explicit A record, no wildcard |
| Caddy | one block, mirrored in `Caddyfile.demo` |
## Two hostnames, one root
Both names serve the same build. The prerendered HTML carries
`<link rel="canonical">` and `og:url` pointing at the **primeintellectgrowth**
name on every route, so the alias does not split search ranking or make a shared
link ambiguous about which site it belongs to.
⚠️ **`lumbridgecorp.com` resolves on a wildcard.** Every subdomain of it points
at cloud-2 whether or not Caddy has a block for it — so an unconfigured or
mistyped name completes DNS, opens TLS, finds no certificate for that SNI, and
fails the handshake with `ERR_SSL_PROTOCOL_ERROR`. That reads as "the site is
broken" when it means "that is not a site". `primeintellectgrowth.com` has no
wildcard, which is why the canonical name needed an explicit A record.
`deploy.sh` smoke-tests the alias for exactly this reason: if the block is ever
edited to drop the second name, the failure is a TLS error rather than a 404,
and nothing else would notice.
## The trap that costs an afternoon