navidrome/README.md

134 lines
5.5 KiB
Markdown
Raw Normal View History

2020-01-24 01:44:08 +01:00
# Navidrome Music Streamer
2016-02-25 00:28:23 +01:00
2020-01-27 03:54:49 +01:00
[![Build](https://img.shields.io/github/workflow/status/deluan/navidrome/Build?style=for-the-badge)](https://github.com/deluan/navidrome/actions)
[![Last Release](https://img.shields.io/github/v/release/deluan/navidrome?label=latest&style=for-the-badge)](https://github.com/deluan/navidrome/releases)
[![Docker Pulls](https://img.shields.io/docker/pulls/deluan/navidrome?style=for-the-badge)](https://hub.docker.com/r/deluan/navidrome)
2020-02-05 14:33:07 +01:00
[![Join the Chat](https://img.shields.io/discord/671335427726114836?style=for-the-badge)](https://discord.gg/xh7j7yF)
2016-02-26 16:56:57 +01:00
2020-01-24 04:57:51 +01:00
Navidrome is an open source web-based music collection server and streamer. It gives you freedom to listen to your
2020-02-05 14:40:15 +01:00
music collection from any browser or mobile device. It's like your personal Spotify!
2020-01-25 18:35:28 +01:00
2020-01-26 04:01:37 +01:00
__Any feedback is welcome!__ If you need/want a new feature, find a bug or think of any way to improve Navidrome,
2020-01-27 14:04:55 +01:00
please fill a [GitHub issue](https://github.com/deluan/navidrome/issues) or join the chat in our [Discord server](https://discord.gg/xh7j7yF)
2020-01-25 18:35:28 +01:00
2020-01-24 04:57:51 +01:00
## Features
- Handles very large music collections
- Streams virtually any audio format available
- Reads and uses all your beautifully curated metadata (id3 tags)
- Multi-user, each user has their own play counts, playlists, favourites, etc..
- Very low resource usage: Ex: with a library of 300GB (~29000 songs), it uses less than 50MB of RAM
- Multi-platform, runs on macOS, Linux and Windows. Docker images are also provided
- Automatically monitors your library for changes, importing new files and reloading new metadata
2020-01-24 15:28:00 +01:00
- Modern and responsive Web interface based on Material UI, to manage users and browse your library
2020-01-24 04:57:51 +01:00
- Compatible with the huge selection of clients for [Subsonic](http://www.subsonic.org),
[Airsonic](https://airsonic.github.io/) and [Madsonic](https://www.madsonic.org/).
See the [complete list of available mobile and web apps](https://airsonic.github.io/docs/apps/)
2020-02-04 15:09:14 +01:00
- Transcoding/Downsampling on-the-fly (WIP. Experimental support is available)
2020-01-24 04:57:51 +01:00
2020-02-05 14:40:15 +01:00
2020-01-24 15:28:00 +01:00
## Road map
2020-01-24 04:57:51 +01:00
This project is being actively worked on. Expect a more polished experience and new features/releases
on a frequent basis. Some upcoming features planned:
- Integrated music player
2020-02-05 14:40:15 +01:00
- Last.FM integration
2020-01-27 03:54:49 +01:00
- Pre-build binaries for Raspberry Pi
2020-01-24 04:57:51 +01:00
- Smart/dynamic playlists (similar to iTunes)
2020-02-05 14:40:15 +01:00
- Support for audiobooks (bookmarking)
2020-01-24 04:57:51 +01:00
- Jukebox mode
- Sharing links to albums/songs/playlists
- Podcasts
2020-02-05 14:40:15 +01:00
2020-01-24 04:57:51 +01:00
## Installation
2020-01-26 18:36:24 +01:00
Various options are available:
2020-01-24 04:57:51 +01:00
2020-01-26 18:36:24 +01:00
### Pre-build executables
Just head to the [releases page](https://github.com/deluan/navidrome/releases) and download the latest version for you
platform. There are builds available for Linux, macOS and Windows (32 and 64 bits).
Remember to install [ffmpeg](https://ffmpeg.org/download.html) in your system, a requirement for Navidrome to work properly.
You may find the latest static build for your platform here: https://johnvansickle.com/ffmpeg/
2020-01-26 18:36:24 +01:00
If you have any issues with these binaries, or need a binary for a different platform, please
[open an issue](https://github.com/deluan/navidrome/issues)
### Docker
2020-01-27 03:34:53 +01:00
[Docker images](https://hub.docker.com/r/deluan/navidrome) are available. They include everything needed to run Navidrome. Example of usage:
2020-01-24 04:57:51 +01:00
```yaml
# This is just an example. Customize it to your needs.
version: "3"
services:
navidrome:
image: deluan/navidrome:latest
ports:
- "4533:4533"
environment:
# All options with their default values:
2020-01-24 07:29:31 +01:00
ND_MUSICFOLDER: /music
ND_DATAFOLDER: /data
ND_SCANINTERVAL: 1m
ND_LOGLEVEL: info
2020-01-24 07:29:31 +01:00
ND_PORT: 4533
2020-01-24 04:57:51 +01:00
volumes:
- "./data:/data"
- "/Users/deluan/Music/iTunes/iTunes Media/Music:/music"
```
2016-02-29 20:16:51 +01:00
2020-02-05 14:40:15 +01:00
To get the cutting-edge, latest version from master, use the image `deluan/navidrome:develop`
2020-01-30 22:07:54 +01:00
### Build from source
2016-02-25 00:28:23 +01:00
2020-01-30 22:07:54 +01:00
You will need to install [Go 1.13](https://golang.org/dl/) and [Node 13.7.0](http://nodejs.org).
You'll also need [ffmpeg](https://ffmpeg.org) installed in your system. The setup is very strict, and
the steps bellow only work with these specific versions (enforced in the Makefile)
2016-04-01 04:28:33 +02:00
2020-01-30 22:07:54 +01:00
After the prerequisites above are installed, clone this repository and build the application with:
2020-01-05 03:16:10 +01:00
2020-01-30 22:07:54 +01:00
```shell script
$ git clone https://github.com/deluan/navidrome
$ cd navidrome
$ make setup # Install tools required for Navidrome's development
$ make buildall # Build UI and server, generates a single executable
2016-04-01 04:28:33 +02:00
```
2020-01-05 03:16:10 +01:00
2020-02-04 21:17:10 +01:00
This will generate the `navidrome` executable binary in the project's root folder.
2020-01-26 18:36:24 +01:00
### Running for the first time
Start the server with:
2020-01-24 04:57:51 +01:00
```shell script
./navidrome
```
2020-01-24 04:57:51 +01:00
The server should start listening for requests on the default port __4533__
2020-01-06 21:19:14 +01:00
After starting Navidrome for the first time, go to http://localhost:4533. It will ask you to create your first admin
user.
2016-02-26 17:39:14 +01:00
2020-01-27 03:54:49 +01:00
For more options, run `navidrome --help`
2020-01-24 04:57:51 +01:00
## Screenshots
<p align="center">
<p float="left">
2020-01-25 23:45:20 +01:00
<img width="270" src="https://raw.githubusercontent.com/deluan/navidrome/master/.github/screenshots/screenshot-login-mobile.png">
<img width="270" src="https://raw.githubusercontent.com/deluan/navidrome/master/.github/screenshots/screenshot-mobile.png">
<img width="270" src="https://raw.githubusercontent.com/deluan/navidrome/master/.github/screenshots/screenshot-users-mobile.png">
2020-01-25 23:40:45 +01:00
<img width="900"src="https://raw.githubusercontent.com/deluan/navidrome/master/.github/screenshots/screenshot-desktop.png">
2020-01-24 04:57:51 +01:00
</p>
</p>
2016-02-27 09:35:01 +01:00
2016-02-26 17:39:14 +01:00
2020-01-24 05:46:30 +01:00
## Subsonic API Version Compatibility
2016-02-24 00:41:35 +01:00
2020-01-24 04:57:51 +01:00
Check the up to date [compatibility table](https://github.com/deluan/navidrome/blob/master/API_COMPATIBILITY.md)
for the latest Subsonic features available.