feat(demo): whole-origin IndeeHub proxy on :2101 with sign-in seeding

- nginx-demo.conf: new :2101 server block reverse-proxying the live
  indee.tx1138.com site with no path prefix (fixes the old sub_filter
  path-rewrite breakage), X-Frame-Options/CSP stripped, WS upgrade
  passthrough, and a demo sign-in script injected into <head>
- indee-demo-signin.js: PUBLIC-DEMO-ONLY seeder that writes a labelled
  throwaway "nsec" account (freshly generated keypair, not a secret) into
  the :2101 origin's indeedhub-accounts/indeedhub-active-account
  localStorage keys, idempotently, so IndeeHub boots signed in
- Dockerfile.web: copy the seeder into the demo web image, EXPOSE 2101
- docker-compose.demo.yml + demo-deploy/docker-compose.yml: publish 2101
  (DEMO_INDEE_PORT override documented in the thin deploy stack)

Verified: nginx -t clean in nginx:alpine; live proxy smoke shows 200 with
no framing headers, injected tag, seed script served, assets proxied.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
archipelago
2026-07-29 12:23:18 -04:00
co-authored by Claude Fable 5
parent e2278ad518
commit 69bc3d3f27
5 changed files with 119 additions and 6 deletions
+4
View File
@@ -13,6 +13,8 @@
# IMAGE_TAG image tag to pull (default: demo)
# ANTHROPIC_API_KEY optional — enables the AI chat panel
# DEMO_WEB_PORT host port for the UI (default 2100)
# DEMO_INDEE_PORT host port for the IndeeHub demo proxy (default 2101;
# must stay 2101 unless the UI's demoAppUrl changes)
services:
neode-backend:
@@ -42,6 +44,8 @@ services:
container_name: archy-demo-web
ports:
- "${DEMO_WEB_PORT:-2100}:80"
# IndeeHub whole-origin demo proxy (nginx :2101 in the web image)
- "${DEMO_INDEE_PORT:-2101}:2101"
environment:
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}
depends_on: