You Can Build A Dedicated Music Server Using Your Old Devices

0
SHARES
2
VIEWS

Person listening to music on phone

Hispanolistic/Getty Images

Starting your own music server to pivot away from subscription services and utilize those CDs or (totally paid for) downloads you, your family, or friends might have accumulated over the years is actually a solid idea. Picking the right device isn’t even that difficult, as it can be an old laptop or PC, a Raspberry Pi, or one of the more powerful alternatives. You won’t even have to really dive into the world of Linux servers if you don’t want to, as this is all totally doable on macOS or Windows with native apps.

There are a few apps you can use, including the multimedia streaming platform Jellyfin. Mainly used for hosting your own streaming service, it actually supports music, audiobooks, and even regular books. However, we’ll focus on the dedicated music app Navidrome, which is completely free — like Jellyfin — but is laser-focused on music. 

On Windows, there’s an MSI executable that will handle the install for you, but you can also still use Docker to containerize and keep it secluded from the rest of the system. This also means you can effectively copy and take it to another PC in the event of a move. On macOS, the choice is once again the same, but they do warn that the security on the system might flag the file, so in that respect, it’s best to check out the team’s documentation to squash any issues when installing the native version.

Navidrome is the perfect tool for self-hosted music streaming

Person writing while listening to music

BongkarnGraphic/Shutterstock

Navidrome’s native installs all handle everything via a configuration file that comes with the download. Today we’ll be using Docker, as it’s universal across all operating systems, even those with a native method. Here, we’ll be using Ubuntu Server to host, but the Docker Compose file used to download and activate Navidrome will remain mostly the same — just be sure to change it to values that match your system. Docker is a container system that silos applications off into their own lanes, piggybacking off your system with its own.

To easily grab everything we need, Docker Compose is used to detail everything. Per the documentation, you’ll need to copy the following into a new text file — preferably in its own folder — called “docker-compose.yml.” The .yml indicates a YAML file. To save as one in Windows, in Notepad, when saving, change the “Text Documents” drop-down to “All Files” and end the file’s name with “.yml” to turn it into a YAML file. On macOS, we can use the TextEdit program; in the top bar, go to Format, Make Plain Text, and when saving, end it with .yml.

services:
  navidrome:
    image: deluan/navidrome:latest
    user: 1000:1000 # must own the data folder and be able to read music folder(s). See Permissions below
    ports:
      - "4533:4533"
    restart: unless-stopped
    environment:
      # Optional: put your config options customization here. Examples:
      # ND_LOGLEVEL: debug
    volumes:
      - "/path/to/data:/data"
      - "/path/to/your/music/folder:/music:ro"

Hosting your own music is pretty easy with Docker

Person with headphones on

Hill Street Studios/Getty Images

Looks a little confusing, right? Don’t fret. It’s actually relatively simple to follow. Down the list, we can see it downloading the latest version, identifying the user number (usually 1000, but double-check), setting up which ports it’ll occupy, and restart options. Where it says “path/to/data” and “your/music/folder,” that’s where you put in the folders you have your music in. So, for example, on Windows it’d be “C:UsersMusic” or on Linux, “/home//Music/”.

With Docker installed, navigate via your Command Prompt or Terminal to the folder you saved the Docker Compose file to, and use “docker compose up -d” to kick it into action. After everything is installed, you can check that it’s running with “docker logs navidrome.”

Songs will be scanned by Navidrome, and eventually, you’ll have your own music server ready to go. This is then accessible via the IP address of the device or using “http://localhost:4533” on the machine itself.

Read More

Next Post