a minimal web player for a navidrome music library.
minimal by design
player focuses on browsing and playing individual tracks. albums, playlists, lyrics, queues, and broader library management are not supported.
deployment notice
anyone who can reach a deployed instance can browse and stream the configured navidrome library. place the app behind access control or use a dedicated navidrome account unless public access is intentional.
vercel is highly recommended for deployment and handles the next.js build automatically.
add these environment variables to the vercel project:
NAVIDROME_URL=https://music.example.com
NAVIDROME_USER=your_username
NAVIDROME_PASSWORD=your_passwordnavidrome credentials are used only by the server and must never be exposed through NEXT_PUBLIC_ variables.
create .env.local:
NAVIDROME_URL=https://music.example.com
NAVIDROME_USER=your_username
NAVIDROME_PASSWORD=your_passwordinstall deps & run:
bun i && bun run devthen open http://localhost:3000.
| key | action |
|---|---|
space |
play or pause |
arrow left |
restart the current track, or play the previous track near its beginning |
arrow right |
play the next track |
arrow left / arrow right on the timeline |
seek by five seconds |
home / end on the timeline |
seek to the beginning or end |
contributions should preserve the default minimal experience. fixes and optimizations may improve existing behavior; additional functionality, including albums, playlists, lyrics, queues, and library management, must remain opt-in.
