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 <noreply@anthropic.com>
This commit is contained in:
archipelago 2026-07-29 12:34:08 -04:00
parent 66d540f8b5
commit d00ca6242c

View File

@ -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) {