From d00ca6242c67e404516bdfe54aae7602a2cb287e Mon Sep 17 00:00:00 2001 From: archipelago Date: Wed, 29 Jul 2026 12:34:08 -0400 Subject: [PATCH] feat(demo): IndeeHub pre-installed and running on fresh demo sessions Add an indeedhub entry to staticDevApps in mock-backend.js (state running, lanPort 8190, existing marketplace title/description/icon). Per-visitor demo state is structuredClone(staticDevApps), so every fresh session shows IndeeHub installed in My Apps with no install step. The demo launch URL bypasses /app/indeedhub/ entirely (iframe loads the :2101 whole-origin proxy), so no DEMO_APP_PAGES placeholder is added; marketplace metadata already lists indeedhub following the same pattern as the other static apps, and uninstall is blocked for static demo apps as usual. Verified: mock-backend.js boots with DEMO=1 and the /ws/db initial dump of a fresh session contains indeedhub state=running. Co-Authored-By: Claude Fable 5 --- neode-ui/mock-backend.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/neode-ui/mock-backend.js b/neode-ui/mock-backend.js index c16e093e..b3f1b13e 100755 --- a/neode-ui/mock-backend.js +++ b/neode-ui/mock-backend.js @@ -1023,6 +1023,20 @@ const staticDevApps = { lanPort: 3001, icon: '/assets/img/app-icons/uptime-kuma.webp', }), + // Pre-installed in the demo so the flagship media app is one click away. + // The demo launch bypasses /app/indeedhub/ entirely — the iframe loads the + // :2101 whole-origin proxy of the real site (see useDemoIntro.demoAppUrl + // and the nginx-demo.conf :2101 server block). + indeedhub: staticApp({ + id: 'indeedhub', + title: 'Indeehub', + version: '1.0.0', + shortDesc: 'Bitcoin documentary streaming platform', + longDesc: 'Stream Bitcoin documentaries and community media — Nostr-native publishing, zaps, and playlists on your own node.', + state: 'running', + lanPort: 8190, + icon: '/assets/img/app-icons/indeedhub.png', + }), } function mergePackageData(dockerApps) {