🎧☁️ Modern Music Server and Streamer compatible with Subsonic/Airsonic
Go to file
Deluan 1278863416 feat: support clients that send the API params as a x-www-form-urlencoded POST 2020-01-27 15:10:46 -05:00
.github ci: create versions with goreleaser 2020-01-26 20:09:25 -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 feat: PORT env var can override configured port 2020-01-26 22:18:30 -05:00
consts feat: first time admin user creation through the ui 2020-01-25 17:10:16 -05:00
engine refactor: add Context to the persistence layer 2020-01-27 09:41:33 -05:00
log feat: add conf for data folder, default current folder (not ./data anymore) 2020-01-26 16:42:56 -05:00
model refactor: add Context to the persistence layer 2020-01-27 09:41:33 -05:00
persistence refactor: add Context to the persistence layer 2020-01-27 09:41:33 -05:00
scanner refactor: add Context to the persistence layer 2020-01-27 09:41:33 -05:00
server feat: support clients that send the API params as a x-www-form-urlencoded POST 2020-01-27 15:10:46 -05:00
static Add git info to version 2020-01-25 11:06:04 -05:00
tests fix: tests 2020-01-26 18:25:12 -05:00
ui fix: user's email is not mandatory 2020-01-26 22:17:58 -05:00
utils Rename env vars prefix to ND_ 2020-01-24 01:29:31 -05:00
.dockerignore ci: create versions with goreleaser 2020-01-26 20:09:25 -05:00
.gitignore ci: create versions with goreleaser 2020-01-26 20:09:25 -05:00
.goreleaser.yml ci: don't add 'ci:' commits to the changelog 2020-01-27 09:44:28 -05:00
.nvmrc Upgrade node to latest 2020-01-23 18:32:49 -05:00
API_COMPATIBILITY.md doc: update compatibility table 2020-01-27 04:32:55 -05:00
Dockerfile fix: add git sha and tag to built image 2020-01-26 20:52:09 -05:00
LICENSE Change license to GPLv3 2020-01-22 14:48:38 -05:00
Makefile ci: create versions with goreleaser 2020-01-26 20:09:25 -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 docs: add Discord invite 2020-01-27 08:05:15 -05:00
banner.go ci: create versions with goreleaser 2020-01-26 20:09:25 -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 feat: add -help, simplified config loading 2020-01-26 16:21:07 -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 Last Release Docker Pulls

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.

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

Any feedback is welcome! If you need/want a new feature, find a bug or think of any way to improve Navidrome, please fill a GitHub issue or join the chat in our Discord server

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

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 Raspberry Pi
  • Smart/dynamic playlists (similar to iTunes)
  • Jukebox mode
  • Sharing links to albums/songs/playlists
  • Podcasts

Installation

Various options are available:

Pre-build executables

Just head to the releases page 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 in your system, a requirement for Navidrome to work properly.

If you have any issues with these binaries, or need a binary for a different platform, please open an issue

Docker

Docker images are available. They include everything needed to run Navidrome. Example of usage:

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

Build it yourself

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 executable in the project's root folder.

Running for the first time

Start the server with:

./navidrome

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

After starting Navidrome for the first time, go to http://localhost:4533. It will ask you to create your first admin user.

For more options, run navidrome --help

Screenshots

Subsonic API Version Compatibility

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