1874bbe8da63358097f44ed77239961979c2d0ff
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.
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.
Languages
Vue
76.7%
TypeScript
22.4%
Rust
0.9%