Guide
Your own music server on a Raspberry Pi
A Raspberry Pi is a quiet, low-power way to keep your whole music collection at home and stream it anywhere. This guide sets one up with Navidrome, a free, open-source music server that runs comfortably on a Pi, and connects Audex to it. Plan on about 30 minutes, most of it waiting for downloads.
What you need
- A Raspberry Pi 4 or 5 (a Pi 3 works too). Navidrome needs very little; 2 GB of memory is plenty.
- A microSD card of 16 GB or more, and the Pi's power supply. A USB SSD is better than the card for a large collection.
- A network connection. A cable to your router is the most reliable; Wi-Fi works.
- A computer to prepare the card and copy your music, on the same network as the Pi.
- Your music files (MP3, FLAC, M4A, OGG, Opus and the like) and Audex on your phone.
Prefer to watch first?
This walkthrough shows Navidrome being set up on a Raspberry Pi 5, then fixing song tags and adding internet radio. The written steps below follow Navidrome's official Docker setup, so the commands differ a little from the video; both end with the same server.
Navidrome is installed from 4:29. Video by Jeffs Pi in the Sky, not affiliated with Audex. Nothing loads from YouTube until you press play. Watch on YouTube
1. Set up the Raspberry Pi
-
Put Raspberry Pi OS on the card
Install Raspberry Pi Imager on your computer and choose your Pi model, then Raspberry Pi OS Lite (64-bit) under "Raspberry Pi OS (other)". You won't need a desktop on a server.
Download Raspberry Pi Imager -
Fill in the settings before writing
When Imager offers to customise the system, set a hostname such as
audex-pi, a username and password, your Wi-Fi if you're not using a cable, and turn on SSH with password login. Then write the card, put it in the Pi and power it on. The first start takes a few minutes. -
Connect to the Pi from your computer
Open a terminal (PowerShell on Windows, Terminal on macOS or Linux) and log in with the username you chose:
ssh yourname@audex-pi.localIf
audex-pi.localisn't found, use the Pi's IP address from your router's list of devices instead. -
Bring it up to date
sudo apt update && sudo apt full-upgrade -y
3. Connect Audex
-
Add the server
In Audex, open Settings → Media servers → Add a server and choose Subsonic / OpenSubsonic / Navidrome. (Jellyfin, Emby and Kodi servers show up by themselves under On this network; Navidrome doesn't announce itself, so you add it by address.)
-
Enter its address and your login
Use the Pi's address and port, for example
http://192.168.1.50:4533, with the Navidrome username and password you just created. Audex tests the connection before saving, so you'll know straight away that it works. -
Turn on Stream original quality
In the same form (or later, on the server's page under Settings → Media servers), turn on Stream original quality. The Pi then sends your files as they are instead of converting them, which keeps it cool and quick. It uses more mobile data away from home, so leave it off if your data plan is small.
-
Play something
Pick the server from the source switcher at the top of the Library. Albums, Artists, Genres and Playlists appear just as Navidrome organises them, and anything can be downloaded for offline listening.
Optional: listen away from home
Your Pi is only reachable on your home network until you add a way in from outside. The simplest safe one is a private VPN such as Tailscale, which needs no changes to your router:
-
Install Tailscale on the Pi and sign in
curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale upOpen the link it prints to sign in, then install the Tailscale app on your phone with the same account.
Get Tailscale -
Add it as the server's second address
Edit the server in Audex and put the Pi's Tailscale address (it starts with
100., plus:4533) in Second address (optional). At home Audex uses your home address; when that can't be reached, it switches to the second one by itself.
If something isn't working
Navidrome opens, but the library is empty
sudo chown -R 1000:1000 ~/music ~/navidrome/data
cd ~/navidrome && docker compose restartAudex can't connect to the server
:4533. On the Pi, docker compose ps (inside ~/navidrome) should show Navidrome as running. If the Pi's address changed, reserve it in your router as in step 2.How do I update Navidrome later?
cd ~/navidrome
docker compose pull && docker compose up -dYour account and settings live in ~/navidrome/data and are kept.Can I use Jellyfin on the Pi instead?
8096), usually finding it under On this network by itself. For video, keep files in formats your devices can play directly, since a Pi can't convert video quickly. Navidrome is the lighter choice if you only need music.Still stuck? Email audex@kymonic.com — a real person reads every message.