Skip to content

Prototype: deploy loopover-miner-ui as a demo Cloudflare Worker (informs #5229's web-dashboard reuse decision) #5963

Description

@JSONbored

Problem

apps/loopover-miner-ui is a real, working self-host operator dashboard (React + TanStack Router, with local API plugins for auth/run-state/portfolio-queue/ledgers/governor/ranked-candidates), but today it only exists as something an individual AMS miner builds and runs locally via a systemd service (systemd/loopover-miner-ui.service.example) — deliberately excluded from this repo's own CI build/deploy pipeline (ci.yml's "UI build" step and ui-deploy.yml both explicitly skip it; test/unit/ci-ui-build-openapi.test.ts asserts this). That means there is currently no way to show anyone what AMS's dashboard looks like without them self-hosting it first, and no CI-validated build step to hang anything — like bundle-size tracking — off of.

Meanwhile #5229 ("Spec: client-surface strategy for hosted AMS") is an open decision issue asking whether apps/loopover-miner-ui can become hosted AMS's own web dashboard via a "hosted-mode config flag," reusing the self-host codebase rather than forking it (the "identical core + thin additive wrapper" pattern this whole milestone recommends). That decision is currently being made in the abstract, with no working prototype to point at.

Area

AMS / Cloud architecture, client-surface

Proposal

Deploy the existing apps/loopover-miner-ui codebase as its own Cloudflare Worker on a subdomain, mirroring the pattern apps/loopover-ui already uses (.github/workflows/ui-deploy.yml + ci.yml's "UI build" step) — but running against a mocked/synthetic data layer instead of a real backend, since none of the actual hosted-AMS infrastructure (auth, multi-tenancy, shared datastore — #4938, #4940, #4941) needs to exist yet for a demo. Concretely: swap the local API plugins (vite-auth.ts, vite-run-state-api.ts, vite-portfolio-queue-api.ts, etc.) for a build-time-flagged mock layer that serves realistic sample data, and add a dedicated CI build+deploy step for this app the same way loopover-ui already has one.

This is deliberately scoped as a prototype/demo, not a commitment to the hosted-AMS architecture:

Deliverables

  • A apps/loopover-miner-ui "demo mode" (mocked data behind a build-time flag, e.g. VITE_DEMO_MODE) that runs with zero real backend and no operator credentials.
  • A dedicated Cloudflare Worker + subdomain deploy for the demo build, mirroring ui-deploy.yml's structure. Start behind manual workflow_dispatch (matching how ui-deploy.yml itself already works today) rather than wiring it into every PR — a stale or broken demo redeploying on every commit is worse than a manually-triggered one.
  • Once the build step exists, extend Codecov Bundle Analysis to cover loopover-miner-ui too (companion to feat(ci): upload loopover-ui bundle stats to Codecov #5961).

Explicitly NOT in scope for this issue

Boundaries

Resources

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions