A Vite-powered Vue 3 single-page application for flashing firmware to Koios devices. Uses esp-web-tools for installation, Nuxt UI 4, and optional OIDC authentication for factory provisioning.
- Node.js 20+
- pnpm 10+
- Chrome or Edge browser (for Web Serial API)
pnpm install
pnpm devThe dev server runs on http://localhost:5173 by default.
| Variable | Description |
|---|---|
VITE_FIRMWARE_API_BASE |
Base URL for the firmware API |
VITE_LICENSING_API_BASE |
Base URL for the licensing API |
VITE_OIDC_ISSUER |
OIDC issuer URL |
VITE_OIDC_CLIENT_ID |
Public client identifier |
VITE_OIDC_REDIRECT_URI |
Redirect URI registered with the IdP |
VITE_OIDC_LOGOUT_REDIRECT_URI |
Post logout redirect URI |
VITE_OIDC_SILENT_REDIRECT_URI |
Silent renew redirect URI (defaults to /auth/silent) |
pnpm dev # Start Vite dev server
pnpm build # Create production build
pnpm preview # Serve production build locally
pnpm lint # Run ESLint
pnpm typecheck # Run vue-tsc for type checking
pnpm generate:api # Regenerate OpenAPI typessrc/pages/- Vue Router views (home, flash, console)src/stores/- Pinia stores (auth, console)src/lib/- API clients, auth helpers, runtime config, serial utilitiessrc/components/- Shared Vue components
- Home page (
/) - Browse available devices - Flash page (
/flash/:project) - Select variant and version, install firmware - Console page (
/console) - View serial output, provision device (if logged in)
Authentication is optional. Public users can browse and flash firmware. Factory users can log in to access crypto provisioning features.
Uses OIDC with PKCE against Keycloak (sso.koiosdigital.net/realms/kd-prod).
- Vue 3 + Vite 6 + TypeScript
- Pinia for state management
- Nuxt UI 4 + Tailwind CSS 4
- esp-web-tools for firmware flashing
- esptool-js for serial console
- oidc-client-ts for authentication
- @xterm/xterm for terminal display