Marco Mooren b86dcfbb8d Add master display UI with audio output management and styling
- Implement main.js for the master display functionality, including WebSocket connection, audio output management, and state handling.
- Create style.css for the master display's visual design, ensuring a cohesive look and feel with a dark theme and responsive layout.
- Integrate device management with a fallback for non-Electron environments, allowing users to select audio outputs.
- Add features for managing favorites, including toggling favorites and filtering by genre.
- Enhance user experience with a responsive favorites grid and drag-to-scroll functionality.
2026-05-11 17:55:09 +02:00

Online Radio Explorer

Touchscreen kiosk + admin for exploring and playing internet radio in the office.

Quick start

cp .env.example .env
npm install
npm run dev

First boot creates the SQLite DB at DB_PATH, runs the seed, and provisions the bootstrap admin from ADMIN_BOOTSTRAP_USER / ADMIN_BOOTSTRAP_PASSWORD.

Production

npm run build
npm start

The built kiosk is served from /, admin from /admin/, API from /api.

Layout

  • server/ — Express, SQLite, WebSocket hub, source adapters, stream resolver.
  • web/ — Vanilla JS kiosk (web/) and admin (web/admin/) bundled by Vite.
  • data/seed/stations.json — curated starter pack.
  • deploy/ — systemd unit + Pi setup notes.
Description
No description provided
Readme 216 MiB
Languages
JavaScript 83.9%
CSS 15.3%
HTML 0.8%