octoturge 1874bbe8da Record why the camera player cannot reach a gateway directly
Measured against go2rtc 1.9.14: it sends no Access-Control-Allow-Origin
on any response, auth or not; the SDP POST needs a preflight anyway
because application/sdp is not a CORS-safelisted Content-Type; and
go2rtc checks basic auth before CORS, so the preflight - which browsers
always send without credentials - gets a 401.

So this component has never worked from a browser on another origin, and
no credential handed to the frontend could fix it. The gateway's API now
requires a password, which closes the hole where anything on the
workshop LAN could watch, and changes the symptom here from a CORS error
to a 401. Both are the same missing piece: the relay.

Also stops the two most misleading errors in this path. A blocked
cross-origin request rejects as an opaque TypeError ("Failed to fetch")
that reads as the gateway being down, and a 401 reads as a wrong URL or
a missing camera. Both now say what they are.
2026-10-18 22:02:02 +00:00

continuum-app

Operator console for the Continuum print farm platform. A single Nuxt 3 SPA (apps/web) shared between the browser and a Tauri 2 desktop shell (apps/desktop), plus a shared component library (packages/ui).

Layout

apps/
  web/        Nuxt 3 SPA (ssr: false) - Supabase auth, Pinia telemetry store
  desktop/    Tauri 2 shell wrapping apps/web's static build
packages/
  ui/         Shared Vue components: PrinterCard, TemperatureGraph, WebRTCStreamView

Getting started

pnpm install
cp .env.example apps/web/.env
pnpm dev:web       # browser dev server on :3000
pnpm dev:desktop    # Tauri dev shell (requires Rust toolchain)

apps/web builds as a static SPA so the exact same apps/web/.output/public bundle is served in the browser and embedded into the Tauri desktop app.

S
Description
Continuum platform: continuum-app
Readme
268 KiB
Languages
Vue 76.7%
TypeScript 22.4%
Rust 0.9%