b86dcfbb8d5456ac4e11c93722d522afc8b1ea3b
- 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.
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
- Kiosk: http://localhost:5173/
- Admin: http://localhost:5173/admin/
- API: http://localhost:4173/api
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
Languages
JavaScript
83.9%
CSS
15.3%
HTML
0.8%