Skip to content
generated from github/codespaces-blank

Navidrome web client using Next.js and ShadCN UI

Notifications You must be signed in to change notification settings

sillyangel/mice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ae288cc · · Aug 16, 2025

History

242 Commits
Jul 11, 2025
Jul 23, 2025
Aug 1, 2025
Jul 25, 2025
Jul 23, 2025
Jul 25, 2025
Jul 28, 2025
Jul 9, 2025
Jul 2, 2025
Jul 2, 2025
Aug 1, 2025
Jun 19, 2025
Jun 19, 2025
Jun 19, 2025
Jul 3, 2025
Jul 10, 2025
Aug 6, 2025
Jun 19, 2025
Jul 12, 2025
Jul 2, 2025
Jul 12, 2025
Jul 25, 2025
Jul 20, 2025
Aug 16, 2025
Aug 16, 2025
Jul 24, 2025
Jul 3, 2025
Jul 3, 2025
Jun 19, 2025

Repository files navigation

Mice Logo

Mice | Navidrome Client

Project based on shadcn/ui's music template.

This is a "Modern" Navidrome (or Subsonic) client built with Next.js and shadcn/ui. It creates a beautiful, responsive music streaming web application that connects to your Navidrome server, and fully able to self-host using docker!

Features

  • Real Music Streaming via Navidrome/Subsonic API
  • Modern UI with shadcn/ui components
  • Dynamic Album Artwork from your music library
  • Favorites - Star albums, artists, and songs
  • Search - Find music across your entire library
  • Audio Player with queue management
  • Scrobbling - Track your listening history
  • Playlist Management - Create and manage playlists
  • Caching - Cache/Offline save your server

Preview

preview

Quick Start

Prerequisites

Setup

  1. Clone and install the required dependencies
git clone https://github.com/sillyangel/project-still.git

cd project-still/
pnpm install



# or npm
npm installl

2. Configure the Navidrome connection

First, copy the example environment file:

cp .env.example .env

Next, open the new .env file and update it with your Navidrome server credentials:

NEXT_PUBLIC_NAVIDROME_URL=http://localhost:4533

NEXT_PUBLIC_NAVIDROME_USERNAME=your_username

NEXT_PUBLIC_NAVIDROME_PASSWORD=your_password

NEXT_PUBLIC_POSTHOG_KEY=phc_XXXXXXXXXXXXXXXXXX

NEXT_PUBLIC_POSTHOG_HOST=https://us.i.posthog.com

Tip: If you don’t have your own Navidrome server yet, you can use the public demo credentials:

NEXT_PUBLIC_NAVIDROME_URL=https://demo.navidrome.org

NEXT_PUBLIC_NAVIDROME_USERNAME=demo

NEXT_PUBLIC_NAVIDROME_PASSWORD=demo
  1. Run the development server
pnpm dev


# or npm

npm run dev
v

Open http://localhost:40625 in your browser.

Docker Deployment

For easy deployment using Docker:

Quick Docker Setup

# Run using pre-built image (app will prompt for Navidrome configuration)
docker run -p 3000:3000 sillyangel/mice:latest



# Or build locally
docker build -t mice  .
docker run -p 3000:3000 micee

Docker Compose (Recommended)

# Copy environment template and configure
cp .env.docker .env

# Edit .env with your settings (optional - app can prompt)
docker-compose up -dd

Pre-configured Docker Run

docker run -p 3000:3000 \
  -e NEXT_PUBLIC_NAVIDROME_URL=http://your-navidrome-server:4533 \
  -e NEXT_PUBLIC_NAVIDROME_USERNAME=your_username \
  -e NEXT_PUBLIC_NAVIDROME_PASSWORD=your_password \
  sillyangel/mice:latesttest

For detailed Docker configuration, environment variables, troubleshooting, and advanced setups, see DOCKER.md

Tech Stack

  • Frontend: Next.js 15, React 19, TypeScript
  • UI: shadcn/ui, Tailwind CSS, Radix UI
  • Backend: Navidrome (Subsonic API compatible)
  • Audio: Web Audio API with streaming
  • State: React Context for global state management

License

This project is licensed under the MIT License.

Acknowledgments