No description
  • TypeScript 98.1%
  • CSS 1%
  • HTML 0.5%
  • Dockerfile 0.4%
Find a file
zemdregon aa28ac25c2
Some checks are pending
ci / build (push) Waiting to run
feat: TMDB search and TV library UI (vault-tested)
2026-08-17 09:35:01 -05:00
.github/workflows fix(ci): self-hosted runners and drop go test -race (#2) 2026-08-10 11:44:23 -05:00
src feat: TMDB search and TV library UI (vault-tested) 2026-08-17 09:35:01 -05:00
.gitignore Initial commit: MuxCore consumer media SPA extract 2026-08-08 22:26:55 -05:00
Dockerfile Initial commit: MuxCore consumer media SPA extract 2026-08-08 22:26:55 -05:00
index.html Initial commit: MuxCore consumer media SPA extract 2026-08-08 22:26:55 -05:00
LICENSE Initial commit: MuxCore consumer media SPA extract 2026-08-08 22:26:55 -05:00
nginx.conf Initial commit: MuxCore consumer media SPA extract 2026-08-08 22:26:55 -05:00
package-lock.json test: add vitest smoke for library, request, and auth errors (#1) 2026-08-09 19:32:00 -05:00
package.json test: add vitest smoke for library, request, and auth errors (#1) 2026-08-09 19:32:00 -05:00
README.md Initial commit: MuxCore consumer media SPA extract 2026-08-08 22:26:55 -05:00
tsconfig.json Initial commit: MuxCore consumer media SPA extract 2026-08-08 22:26:55 -05:00
tsconfig.node.json Initial commit: MuxCore consumer media SPA extract 2026-08-08 22:26:55 -05:00
vite.config.lib.ts Initial commit: MuxCore consumer media SPA extract 2026-08-08 22:26:55 -05:00
vite.config.ts feat: TMDB search and TV library UI (vault-tested) 2026-08-17 09:35:01 -05:00
vitest.config.ts feat: library-plus nav and TV search/request (#3) 2026-08-10 18:04:34 -05:00

media-ui-app

Clean MuxCore consumer SPA (Vite + React). Shipable extract of the former media-ui/ui/ surface.

Org repo: Muxcore-Media/media-ui-app.
The polluted dump Muxcore-Media/media-ui stays quarantined — do not treat that root as the product SPA.

Features

  • Browse movies / TV (via MVP BFF mediauiproxmedia-movies / media-tvshows)
  • Search + request (/api/search, /api/requestrequest-media)
  • Playback when a movie has an attached file (has_file + /stream/movies/{id})
  • Auth via auth-local (login redirect + session cookie on the BFF)
  • Logout header link → /logout

Auth + stream (MVP host)

On the MuxCore reference stack (_mvp in a sibling workspace checkout):

Piece Detail
Listen mediauiprox on :5173 serves dist-app
Login Unauthenticated pages redirect to auth-local (:9401); callback /auth/callback
Credentials (dev) admin / admin-dev-only
Logout GET /logout clears the session cookie
Stream Browser <video>/stream/movies/{id} → media-movies HTTP (range requests)
Disable auth MEDIA_UI_REQUIRE_AUTH=0 (not for production)

Offline metadata: TMDB_FIXTURE=1 on metadata-tmdb. Live search: TMDB_API_KEY.

Develop

npm ci
npm run dev

Point Vite proxies (see vite.config.ts) or run against _mvp mediauiprox.

Build

npm ci
npm run typecheck
npm run build   # → dist-app/

CI: .github/workflows/ci.yml (npm ci + typecheck + build).

MVP wiring

Piece Location
This repo Muxcore-Media/media-ui-app
Production build dist-app/ (gitignored; build in CI or locally)
Host BFF _mvp/cmd/mediauiprox (workspace)
Operator browse URLs _mvp/run/VIEW-ME.txt
# from a MuxCore workspace with siblings
cd ../_mvp && ./run-host.sh up
# Consumer UI: http://127.0.0.1:5173