eleven / messenger Public

docs: wildcard DNS — new instances skip the per-subdomain DNS step

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Paul Campbell 7535829f94e87de3c0737f0875dbb59574b02078 parent 7b9d842
1 file changed, +12 −3
  • CLAUDE.md +12 −3
diff --git a/CLAUDE.md b/CLAUDE.md
index ef913df..d4ca391 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -95,11 +95,20 @@ Add tests as you go. Go handler tests use `newTestServer(t)` which returns
## Deploy
-Hosted on a Hetzner box via **Miren**, cluster `luanchat`. Five fully-isolated
-instances (each its own app, disk, admin token, subdomain): `lchat`
-(group.luan.chat), `test`, `paja`, `paulandciara`, `miren`.
+Hosted on a Hetzner box via **Miren**, cluster `luanchat`. Each chat is a
+fully-isolated instance — its own Miren app, disk, admin token, and subdomain
+(e.g. `lchat`→group.luan.chat, plus `test`/`paja`/`paulandciara`/`miren`/`gav`/…).
+`miren app list -C luanchat` is the source of truth for what's live.
+
+DNS is a **wildcard** `*.luan.chat → <server IP>`, so a new instance needs no DNS
+step and gets TLS in seconds (Miren completes ACME on route-set since the name
+already resolves). Point a subdomain elsewhere with a specific record (it beats
+the wildcard).
```sh
+# New instance — wildcard DNS covers it; this is the whole thing.
+./deploy-instance.sh <name> <name>.luan.chat # then add a 1Password token item
+
# Update an existing instance — DATA-SAFE. Reuse its token; never mint a new one.
TOK="$(miren env get LCHAT_ADMIN_TOKEN -u -a <app> -C luanchat)"
./deploy-instance.sh <app> <host> "$TOK"