eb5609699205c6da97e18bbd62da1c10441f92b8
- Deleted all offline-related component files: - EnhancedOfflineManager.tsx - OfflineIndicator.tsx - OfflineLibrarySync.tsx - OfflineManagement.tsx - OfflineNavidromeContext.tsx - OfflineNavidromeProvider.tsx - OfflineStatusIndicator.tsx - Deleted all offline-related hooks: - use-offline-audio-player.ts - use-offline-downloads.ts - use-offline-library-sync.ts - use-offline-library.ts - Updated components to remove offline functionality: - RootLayoutClient: Removed OfflineNavidromeProvider, using only NavidromeProvider - SongRecommendations: Removed offline data fetching logic - album-artwork: Removed OfflineIndicator usage - WhatsNewPopup: Updated changelog to reflect offline removal - Updated pages: - album/[id]/page: Removed all OfflineIndicator components from album and song displays - page.tsx: Removed OfflineStatusIndicator and offline empty state message - settings/page: Removed EnhancedOfflineManager and OfflineManagement sections - Simplified use-progressive-album-loading hook to only use online API - Fixed resizable component imports for react-resizable-panels 4.5.1 API changes
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
Preview
Quick Start
Prerequisites
- Navidrome server running
- Node.js 18+
Setup
- Clone and install the required dependencies
git clone https://github.com/sillyangel/project-still.git
cd project-still/
pnpm install
# or npm
npm install
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
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
- Run the development server
pnpm dev
# or npm
npm run dev
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 mice
Docker Compose (Recommended)
# Copy environment template and configure
cp .env.docker .env
# Edit .env with your settings (optional - app can prompt)
docker-compose up -d
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:latest
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
- shadcn/ui for the beautiful UI components
- Navidrome for the amazing music server
- Subsonic API for the API specification
Description
Languages
TypeScript
95.5%
CSS
3.8%
JavaScript
0.5%
Dockerfile
0.1%
