Subsonic player is a responsive, modern web-based client designed for Subsonic music servers.
Built with Nuxt 3, a modern Vue 3 framework, this open-source application provides a seamless and enjoyable music listening experience across all devices.
Compatible Servers:
- Gonic (This application is primarily optimized for use with Gonic).
- Airsonic Advanced.
- Navidrome.
- Subsonic servers.
-
Fully Responsive UI (Further design improvements are ongoing.)
- Optimized for desktop and mobile devices.
- Adaptive design.
-
Comprehensive Library Browsing
- Browse by album, artist, genre.
- Explore podcasts and favourites.
- Access internet radio stations.
-
Advanced Functionality
- MediaSession Integration.
- Advanced Search capabilities.
- Dark/Light Mode support.
Prerequisites:
The simplest way to run the application is via Docker Compose. This method automatically handles dependencies and configuration.
The environment variables are optional and can be customized as needed.
Create a file named docker-compose.yml
with the following content.
services:
subsonic-player:
container_name: subsonic-player
image: vd39/subsonic-player:latest
ports:
- '3000:3000'
restart: unless-stopped
Execute the following command in your terminal:
docker compose up -d
The application will be accessible at http://localhost:3000
.
This method offers more granular control.
docker run -d \
--name subsonic-player \
-p 3000:3000 \
--restart unless-stopped \
vd39/subsonic-player:latest
The application will be accessible at http://localhost:3000
.
This method skips Docker and runs the application directly using Node.js and Yarn.
-
Clone the repository:
git clone https://github.com/VD39/subsonic-player.git
-
Navigate to the project directory:
cd subsonic-player
-
Install dependencies:
yarn install
-
(Optional) Create a
.env
file: Create a file named.env
in the project's root directory. This file will hold your environment variables. -
Start the development server:
yarn dev
The development server will start at http://localhost:3000
.
Changes you make to the code will automatically trigger a rebuild and refresh of the browser.
Variable | Default | Description |
---|---|---|
NUXT_PUBLIC_SERVER_URL |
undefined |
Subsonic server URL |
NUXT_PUBLIC_MAIN_APP_TITLE |
Music App |
Browser tab title |
NUXT_PUBLIC_LOAD_SIZE |
50 |
Items loaded per scroll |
NUXT_PUBLIC_IMAGE_SIZE |
500 |
Album art image size (in pixels) |
Contributions are always welcome! Feel free to contribute, provide feedback, or raise issues on GitHub!
This project is licensed under the AGPLv3 license. Full license details available in the LICENSE file for details.