Let's Talk About The Perfect Self Hosted Music Stack - Lidarr, Deemix and Navidrome

What's the perfect self hosted music stack? 🎵 Let's talk about this controversial topic and get you setup managing your own music collection!

Let's Talk About The Perfect Self Hosted Music Stack - Lidarr, Deemix and Navidrome

Providers such as Spotify and Deezer have been around for years providing you with millions of songs to stream anywhere on the go. But being as stubborn as we can be, self hosters and data hoarders alike, enjoy collecting and managing their own music collections ad free.

☠️
First, I'd like to set an example that Noted does not condone piracy of any kind. We are paid subscribers of Deezer.com and you should assume this moving forward. While we strive to provide free and open source methods for self hosting tools, we always encourage our readers to pay for the things they enjoy using most if possible. Especially copyrighted media.

The Self Hosted Applications

For this stack, we will be using the following self hosted applications:

Lidarr - Lidarr is a music collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new albums from your favorite artists and will interface with clients and indexers to grab, sort, and rename them. It can also be configured to automatically upgrade the quality of existing files in the library when a better quality format becomes available. More specifically, we will be using this fork of Lidarr that is modified to work seamlessly with Deemix.

Deemix - Deemix is a python library that lets you download millions of songs, soundtracks, albums in high-quality mp3 and FLAC. Deemix will be used as the indexer for Lidarr.

Navidrome - Navidrome allows you to enjoy your music collection from anywhere, by making it available through a modern Web UI and through a wide range of third-party compatible mobile apps, for both iOS and Android devices. We will be using Navidrome to serve our music collection.

The Setup Process

I will quickly walk you through the process to get all of this running. It's pretty painless for the most part!

Setup and install Lidarr and Deemix

First we need a way to manage our music collection. We will use a special fork of Lidarr that has Deemix integrated into the stack to be used as our indexer. (AKA downloader).

Use this Docker Compose stack to install both Lidarr and Deemix.

version: "3"
services:
  lidarr:
    image: youegraillot/lidarr-on-steroids
    restart: unless-stopped
    ports:
      - "8686:8686" # Lidarr web UI
      - "6595:6595" # Deemix web UI
    volumes:
      - <path>:/config
      - <path>:/config_deemix
      - <path>:/downloads
      - <path>:/music

When the installation is complete, you will need to CHMOD both the download and music volumes to 777 so the container can read and write to them. Lidarr needs to be able to move files and Deemix needs to be able to send files to the volumes as well. Once you do this, restart the container so Lidarr can automatically find your Music directory and add it for you.

Lidarr will be your central control for managing music. Once you log into Deemix, you won't have to access it anymore unless you want to clear the download logs. You will do all the downloading and management through Lidarr which has control of Deemix. But first, we have to get a Deezer account.

I recommend enabling "Rename Tracks" in the Lidarr Media Management section.

Otherwise all of your music will be dumped into the artist name folder and not organized by album folder.

Create a Deezer account

In order to download music using Deemix, you will need a Deezer account. I highly recommend you also purchase a premium account. You get a month free and that free month also gets you FLAC quality music. It's $10/mo or $4.99/mo for students and trust me, it's well worth it. If you decide not to purchase premium, you are living life on the edge. 🏴‍☠️ Deemix will still work but you will only be allowed to get 128 kbps quality. Support music artists and have peace of mind!

Start downloading muisc

Now you can begin using Lidarr to add artists and download albums.

If you purchased a premium Deezer account, no further action is required to get the best quality. By default, Deemix will be set to FLAC but I changed it to 320 which you can see displayed here in Lidarr when you click on an album. You can change the quality in the Deemix settings under "Preferred Bitrate".

Install Navidrome to serve your music

Navidrome can be installed with a simple Docker Compose.

version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    user: 1000:1000 # should be owner of volumes
    ports:
      - "4533:4533"
    restart: unless-stopped
    environment:
      # Optional: put your config options customization here. Examples:
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info  
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
    volumes:
      - "/path/to/data:/data"
      - "/path/to/your/music/folder:/music:ro"
      ```

Be sure to map the music volume to the same volume you used for the Lidarr stack so it can see and index your music.

When the Navidrome install is complete, you will have to create an account which will be the admin account. Once this is done, you can log in and see your music is now being indexed.

Navidrome paired with the SubStreamer mobile app is a great combination for listening to your collection on the go. SubStreamer is available for both iOS and Android devices.

Final Notes and Thoughts

So what do you think? Is this the perfect music server for you? It works very well for me so far and I am very happy with the results. Paying for Deezer was a no brainer for me too because we listen to a lot of music in our home. Having FLAC quality music is a plus for audiophiles who really love their music.

If you find the Lidarr fork useful, be sure to give it a star on Github. You should also give Navidrome a star too!