Marco Mooren 00246389bc Add API documentation and underground station importer
- Introduced a new HTML documentation page for the oradio API, including a JavaScript file to handle dynamic content and API requests.
- Added a CSS file for styling the documentation page.
- Implemented an underground station importer script that fetches data from Radio-Browser and writes it to a JSON file.
- Created a stats module to compute and manage vote and play statistics for radio stations.
- Added a polyfill for modulepreload to ensure compatibility with older browsers.
2026-05-11 02:06:48 +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%