🎧☁️ Modern Music Server and Streamer compatible with Subsonic/Airsonic
Go to file
Thor77 9ed35cbb02 Fix dependency installation using Makefile
which failed because a 'go get' command was given as an argument to
'go get'
2020-01-25 09:37:27 -05:00
.github Embed static files used by Subsonic API 2020-01-24 21:35:19 -05:00
assets Add warning when using external assets 2020-01-24 20:35:27 -05:00
bin Removed unused scripts (moved to Makefile) 2016-10-10 21:03:21 -04:00
conf Disable loading config from flags, as it was not behaving correctly 2020-01-24 01:36:22 -05:00
consts Rename project to Navidrome 2020-01-23 19:44:08 -05:00
engine Fix test 2020-01-24 22:02:50 -05:00
log New Folder Scanner - WIP 2020-01-17 20:54:28 -05:00
model Remove unused code 2020-01-22 15:42:29 -05:00
persistence Rename env vars prefix to ND_ 2020-01-24 01:29:31 -05:00
scanner Ignore case in extracted tags 2020-01-24 09:46:59 -05:00
server Add banner.txt as a static file 2020-01-24 23:45:31 -05:00
static Add banner.txt as a static file 2020-01-24 23:45:31 -05:00
tests Rename project to Navidrome 2020-01-23 19:44:08 -05:00
ui Change to dark theme 2020-01-23 22:51:52 -05:00
utils Rename env vars prefix to ND_ 2020-01-24 01:29:31 -05:00
.dockerignore Rename project to Navidrome 2020-01-23 19:44:08 -05:00
.gitignore Rename project to Navidrome 2020-01-23 19:44:08 -05:00
.nvmrc Upgrade node to latest 2020-01-23 18:32:49 -05:00
API_COMPATIBILITY.md Update API_COMPATIBILITY.md 2020-01-24 11:35:15 -05:00
Dockerfile All options and default values in Dockerfile and docker-compose.yml example 2020-01-24 10:27:49 -05:00
LICENSE Change license to GPLv3 2020-01-22 14:48:38 -05:00
Makefile Fix dependency installation using Makefile 2020-01-25 09:37:27 -05:00
Procfile.dev Add ui subfolder, bootstrapped a "hello-world" React-Admin app, changed Makefile to start both apps in dev mode 2020-01-14 15:34:59 -05:00
README.md Embed static files used by Subsonic API 2020-01-24 21:35:19 -05:00
docker-compose.yml Rename env vars prefix to ND_ 2020-01-24 01:29:31 -05:00
go.mod Rename project to Navidrome 2020-01-23 19:44:08 -05:00
go.sum Authenticate UI 2020-01-20 10:25:35 -05:00
main.go Add banner.txt as a static file 2020-01-24 23:45:31 -05:00
reflex.conf Rename project to Navidrome 2020-01-23 19:44:08 -05:00
wire_gen.go Rename project to Navidrome 2020-01-23 19:44:08 -05:00
wire_injectors.go Rename project to Navidrome 2020-01-23 19:44:08 -05:00

README.md

Navidrome Music Streamer

Build Status

Navidrome is an open source web-based music collection server and streamer. It gives you freedom to listen to your music collection from any browser or mobile device.

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
  • Modern and responsive Web interface based on Material UI, to manage users and browse your library
  • Compatible with the huge selection of clients for Subsonic, Airsonic and Madsonic. See the complete list of available mobile and web apps

This is alpha quality software. Expect some changes in the feature set and the way it works

Road map

This project is being actively worked on. Expect a more polished experience and new features/releases on a frequent basis. Some upcoming features planned:

  • Transcoding/Downsampling on-the-fly
  • Last.FM integration
  • Integrated music player
  • Pre-build binaries for all platforms, including Raspberry Pi
  • Smart/dynamic playlists (similar to iTunes)
  • Jukebox mode
  • Sharing links to albums/songs/playlists
  • Podcasts

Installation

Currently there are no downloadable binaries (WIP). The available options are:

Run it with Docker

# 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:
      ND_MUSICFOLDER: /music
      ND_DBPATH: /data/navidrome.db
      ND_SCANINTERVAL: 1m
      ND_LOGLEVEL: info  
      ND_PORT: 4533
    volumes:
      - "./data:/data"
      - "/Users/deluan/Music/iTunes/iTunes Media/Music:/music"

Build it yourself / Development Environment

You will need to install Go 1.13 and Node 13.7. You'll also need ffmpeg installed in your system

After the prerequisites above are installed, build the application with:

$ make setup
$ make buildall

This will generate the navidrome binary in the project's root folder. Start the server with:

./navidrome

The server should start listening for requests on the default port 4533

First time password

The first time you start the app it will create a new user "admin" with a random password. Check the logs for a line like this:

Creating initial user. Please change the password!  password=XXXXXX user=admin

You can change this password using the UI. Just browse to http://localhost:4533/app#/user and login with this temporary password.

Screenshots

Subsonic API Version Compatibility

Check the up to date compatibility table for the latest Subsonic features available.