Mon Sep 7 17:00:42 UTC 2026 === HTTP LAN === HTTP/1.1 200 OK date: Mon, 07 Sep 2026 17:00:42 GMT server: uvicorn content-length: 55 content-type: application/json BODY: {"status":"ok","version":"0.1.0","woo_reachable":false} === HTTPS try slab hostname === 14:| `APP_HOSTNAME` (HTTPS site name, e.g. `slab.example.local`) | `slab.local` (LAN-first; Pi-hole or hosts → `192.168.1.202`) | 17:| `WOO_BASE_URL` (`https://` store; not editable in app) | `https://www.whidbeywoodstore.com` (practice drafts via `SLAB-UAT-*`) | 25:| Free port for fastapi bind (`FASTAPI_PORT`, default 18081) | **18081 free** | 43:| A record: `APP_HOSTNAME` → `APP_HOST` | `slab.local` → `192.168.1.202` (LAN). Optional Tailscale alias later. | 44:| Reachable from phone on LAN? | **HTTP OK** — `192.168.1.202:80` returns 200 (HTML stub). `192.168.1.202:18080` (frontend stub), `192.168.1.202:18081` (FastAPI `/api/health → ok`). Phone hang fixed: Caddy `:80` no longer forces 308 HTTPS redirect. | === HTTPS slab.local === curl: (6) Could not resolve host: slab.local HTTPS_BODY: === HTTPS 100.64.0.9 443/18443 === curl: (7) Failed to connect to 100.64.0.9 port 443 after 166 ms: Could not connect to server curl: (7) Failed to connect to 100.64.0.9 port 18443 after 168 ms: Could not connect to server