Discussion
Loading...

#Tag

Log in
  • About
  • Code of conduct
  • Privacy
  • Users
  • Instances
  • About Bonfire
James Valleroy boosted
Axel Knauf
Axel Knauf
@id@fedi.4x31.dev  ·  activity timestamp 3 weeks ago

I wanted to listen to my music collection from everywhere, so I've been setting up Navidrome behind my FreedomBox using Podman quadlets for systemd integration (all based on Debian Trixie). Here's how:

First I've installed Navidrome as Podman quadlet, based on the official docker compose installation manual:

Docs: https://www.navidrome.org/docs/installation/docker/

This is what my /etc/containers/systemd/navidrome.container looks like:

[Unit]
Description=Navidrome
Wants=network-online.target
After=network-online.target

[Container]
Image=docker.io/deluan/navidrome:0.60.0

User=1001:119
UserNS=keep-id

Environment=ND_ENABLEINSIGHTSCOLLECTOR=false
Environment=ND_BASEURL=https://www.example.org/music/
Environment=ND_LASTFM_ENABLED=false
Environment=ND_LISTENBRAINZ_ENABLED=false
Environment=ND_ENABLECOVERANIMATION=false

Volume=/home/navidrome/data:/data:rw,U,z
Volume=/media/data/my-mp3-collection/:/music:ro,U,z

PublishPort=127.0.0.1:4533:4533

[Service]
TimeoutStartSec=900
Restart=always

[Install]
WantedBy=multi-user.target

Things to note:

  • I've pinned the version to not automatically pull latest but have control over upgrades.
  • User 1001:119 refers to a dedicated non-system user I've created with adduser navidrome --disabled-login which has a home directory to hold the data dir. 119 is the group my music collection folder belongs to. I'm automatically synchronizing it using syncthing, hence the differing GID.

After setting up this quadlet, I reloaded systemd config, started the container and checked the logs. It came up fine, scanning my library on first start:

sudo systemctl daemon-reload
sudo systemctl start navidrome
sudo journalctl -u navidrome -f

Afterwards I set up FreedomBox integration, so I can potentially re-use SSO and have Navidrome run on a URL path on the same domain. In order to do that I created a new Apache2 config /etc/apache2/conf-available/navidrome.conf:

<Location /music/>

Include includes/freedombox-single-sign-on.conf

<IfModule mod_auth_pubtkt.c>
TKTAuthToken "admin"
</IfModule>

# allow websockets
RewriteEngine On
RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) wss://127.0.0.1:4533/$1 [P,L]

ProxyPass http://127.0.0.1:4533/music/ retry=1
ProxyPassReverse http://127.0.0.1:4533/music/
ProxyPreserveHost On

</Location>

This config uses FreedomBox's SSO and enforces a user account with "admin" role. In addition, it enables WebSockets and proxies through to the Navidrome container on port 4533.

I enabled it and reloaded Apache:

sudo a2enconf navidrome
sudo systemctl reload apache2

All of this done, I was able to open the Navidrome web UI on the configured path /music of my FreedomBox and set up a first admin account. Hooray!


Next up: Figure out how to enable Navidrome to use FreedomBox's SSO. The docs are straight-forward:

https://www.navidrome.org/docs/getting-started/extauth-quickstart/

And FreedomBoxs already sets a REMOTE_USER header. But I've not been able to make this work, yet. Inside the podman container, the proxy IP is reported as 10.88.0.1, but setting this and the header in my config did not work. I'll figure it out eventually and post an update. Happy selfhosting!

#FreedomBox #Navidrome #Selfhosting #Music

Navidrome

Externalized Authentication Quick Start

Quick Start guide
Navidrome

Installing with Docker

Using the official docker images with Docker and Docker Compose
  • Copy link
  • Flag this post
  • Block
Axel Knauf
Axel Knauf
@id@fedi.4x31.dev  ·  activity timestamp 3 weeks ago

I wanted to listen to my music collection from everywhere, so I've been setting up Navidrome behind my FreedomBox using Podman quadlets for systemd integration (all based on Debian Trixie). Here's how:

First I've installed Navidrome as Podman quadlet, based on the official docker compose installation manual:

Docs: https://www.navidrome.org/docs/installation/docker/

This is what my /etc/containers/systemd/navidrome.container looks like:

[Unit]
Description=Navidrome
Wants=network-online.target
After=network-online.target

[Container]
Image=docker.io/deluan/navidrome:0.60.0

User=1001:119
UserNS=keep-id

Environment=ND_ENABLEINSIGHTSCOLLECTOR=false
Environment=ND_BASEURL=https://www.example.org/music/
Environment=ND_LASTFM_ENABLED=false
Environment=ND_LISTENBRAINZ_ENABLED=false
Environment=ND_ENABLECOVERANIMATION=false

Volume=/home/navidrome/data:/data:rw,U,z
Volume=/media/data/my-mp3-collection/:/music:ro,U,z

PublishPort=127.0.0.1:4533:4533

[Service]
TimeoutStartSec=900
Restart=always

[Install]
WantedBy=multi-user.target

Things to note:

  • I've pinned the version to not automatically pull latest but have control over upgrades.
  • User 1001:119 refers to a dedicated non-system user I've created with adduser navidrome --disabled-login which has a home directory to hold the data dir. 119 is the group my music collection folder belongs to. I'm automatically synchronizing it using syncthing, hence the differing GID.

After setting up this quadlet, I reloaded systemd config, started the container and checked the logs. It came up fine, scanning my library on first start:

sudo systemctl daemon-reload
sudo systemctl start navidrome
sudo journalctl -u navidrome -f

Afterwards I set up FreedomBox integration, so I can potentially re-use SSO and have Navidrome run on a URL path on the same domain. In order to do that I created a new Apache2 config /etc/apache2/conf-available/navidrome.conf:

<Location /music/>

Include includes/freedombox-single-sign-on.conf

<IfModule mod_auth_pubtkt.c>
TKTAuthToken "admin"
</IfModule>

# allow websockets
RewriteEngine On
RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) wss://127.0.0.1:4533/$1 [P,L]

ProxyPass http://127.0.0.1:4533/music/ retry=1
ProxyPassReverse http://127.0.0.1:4533/music/
ProxyPreserveHost On

</Location>

This config uses FreedomBox's SSO and enforces a user account with "admin" role. In addition, it enables WebSockets and proxies through to the Navidrome container on port 4533.

I enabled it and reloaded Apache:

sudo a2enconf navidrome
sudo systemctl reload apache2

All of this done, I was able to open the Navidrome web UI on the configured path /music of my FreedomBox and set up a first admin account. Hooray!


Next up: Figure out how to enable Navidrome to use FreedomBox's SSO. The docs are straight-forward:

https://www.navidrome.org/docs/getting-started/extauth-quickstart/

And FreedomBoxs already sets a REMOTE_USER header. But I've not been able to make this work, yet. Inside the podman container, the proxy IP is reported as 10.88.0.1, but setting this and the header in my config did not work. I'll figure it out eventually and post an update. Happy selfhosting!

#FreedomBox #Navidrome #Selfhosting #Music

Navidrome

Externalized Authentication Quick Start

Quick Start guide
Navidrome

Installing with Docker

Using the official docker images with Docker and Docker Compose
  • Copy link
  • Flag this post
  • Block
Box464 - Hire me! boosted
Cory Dransfeldt :demi:
Cory Dransfeldt :demi:
@cory@follow.coryd.dev  ·  activity timestamp 3 weeks ago

Plugin support for my music server? I am going to break so many things #Development #Webdev #Navidrome

https://github.com/navidrome/navidrome/releases/tag/v0.60.0

GitHub

Release v0.60.0 · navidrome/navidrome

Plugins This release introduces a major rewrite of the experimental Plugin System, now with multi-language PDK support, enabling developers to extend Navidrome's functionality using WebAssembly-bas...
  • Copy link
  • Flag this post
  • Block
Cory Dransfeldt :demi:
Cory Dransfeldt :demi:
@cory@follow.coryd.dev  ·  activity timestamp 3 weeks ago

Plugin support for my music server? I am going to break so many things #Development #Webdev #Navidrome

https://github.com/navidrome/navidrome/releases/tag/v0.60.0

GitHub

Release v0.60.0 · navidrome/navidrome

Plugins This release introduces a major rewrite of the experimental Plugin System, now with multi-language PDK support, enabling developers to extend Navidrome's functionality using WebAssembly-bas...
  • Copy link
  • Flag this post
  • Block
Melissa Fehr boosted
BjoernAusGE
BjoernAusGE
@bjoern@social.sengotta.net  ·  activity timestamp 2 months ago

My fellow homelabbers: which sultion would you recommend if you would like to build a Spotify like Streaming Service for youre family with music you have in a local library?
Important would be that there is an App for at least iPhone/iPad and that things like smart playlists, multiuser etc ist supported so everybody could use the same big catalog but with its own playlists, favourits etc.
If have already found three projects which could be okay: Navidrome, Funkwhale and Koel.
Any thoughts about this? Which route would you go?
#homelab #selfhosting #spotify #navidrome #funkwhale #koel @homelab @homelab_de

  • Copy link
  • Flag this post
  • Block
BjoernAusGE
BjoernAusGE
@bjoern@social.sengotta.net  ·  activity timestamp 2 months ago

My fellow homelabbers: which sultion would you recommend if you would like to build a Spotify like Streaming Service for youre family with music you have in a local library?
Important would be that there is an App for at least iPhone/iPad and that things like smart playlists, multiuser etc ist supported so everybody could use the same big catalog but with its own playlists, favourits etc.
If have already found three projects which could be okay: Navidrome, Funkwhale and Koel.
Any thoughts about this? Which route would you go?
#homelab #selfhosting #spotify #navidrome #funkwhale #koel @homelab @homelab_de

  • Copy link
  • Flag this post
  • Block
m_m
m_m
@msleaveamix@mastodon.zaclys.com  ·  activity timestamp 2 months ago

@tcit ça ç'est fou! j'invite toutes les personnes ayant quelque espace de stockage #ur un serveur à se renseigner sur des logiciels de type "navidrome" et d'inciter leurs collègues à quitter cette merde de spotify pour créer des alternatives! et n'oubliez pas d'acheter des disques, du merch, et d'aller aux concerts!

#navidrome #fuckspotify #subsonic #degoogle #selfhosting

  • Copy link
  • Flag this post
  • Block
Nicd
Nicd
@nicd@masto.ahlcode.fi  ·  activity timestamp 3 months ago

On April 2024 I picked up a small Lenovo server on sale and put it on the corner of my desk at home. From there began my return to self hosting:

- Social: #Mastodon
- Blog: https://blog.nytsoi.net/
- Code: #Forgejo https://git.ahlcode.fi
- IRC: #TheLounge
- Cycling planner: #Wanderer (due to be replaced)
Electricity price/usage monitoring: https://git.ahlcode.fi/nicd/hanuri
- Plus various websites

And now music streaming with #Navidrome.

Really happy with how everything has worked. :)

#SelfHosting

Interface of Supersonic, a Subsonic music player client, connected to my Navidrome server. It's playing "Fireworks" by First Aid Kit.
Interface of Supersonic, a Subsonic music player client, connected to my Navidrome server. It's playing "Fireworks" by First Aid Kit.
Interface of Supersonic, a Subsonic music player client, connected to my Navidrome server. It's playing "Fireworks" by First Aid Kit.
T:mi AhlCode

hanuri

Full stack Gleam app for collecting and visualizing data from a power meter HAN (P1) port.
  • Copy link
  • Flag this post
  • Block
Nicd
Nicd
@nicd@masto.ahlcode.fi  ·  activity timestamp 3 months ago

I installed #Navidrome to try to replace the streaming service I use and welp. Tried the config setting `ND_SCANNER_GROUPALBUMRELEASES: true` that I found online but no change. These were bought from iTunes and are displayed correctly in Music.app. :/

Album view of CHVRCHES in Navidrome. Two albums are repeated 5 times in the listing.
Album view of CHVRCHES in Navidrome. Two albums are repeated 5 times in the listing.
Album view of CHVRCHES in Navidrome. Two albums are repeated 5 times in the listing.
  • Copy link
  • Flag this post
  • Block
Leszek
Leszek
@lpryszcz@genomic.social  ·  activity timestamp 4 months ago

actually, @jellyfin handles streaming both, #movies and #music perfectly well! imho it fetches multimedia info better than Navidrome and you can #Identify them manually for missed media. It also can integrate with external provides such as #lastfm

Leszek
Leszek
@lpryszcz@genomic.social  ·  activity timestamp 4 months ago

still, for some use cases, #Navidrome via mobile #tempo app seems better choice: it supports downloads and offline listening, offers Home page with suggestions. #jellyfin clearly wins on smart TVs. while using it via webbrowser is a tie, for some aspects former is better ( #Navidrome seems slightly lighter), for other the latter ie music is better organised out of the box in #jellyfin.

  • Copy link
  • Flag this comment
  • Block
Leszek
Leszek
@lpryszcz@genomic.social  ·  activity timestamp 5 months ago

I've been using #spotify and lately #Tidal (superb quality), but #selfhosting #music with direct donations to local bands my be better option. So I started playing with #Navidrome via @yunohost .
I'm using #Tempo client installed via @fdroidorg.
It works great, you only need to reset password, because SSO authentication doesn't work for direct login (random password is generated) https://github.com/YunoHost-Apps/navidrome_ynh/issues/101#issuecomment-1590007175

  • Copy link
  • Flag this post
  • Block
Stefano Marinelli boosted
pfr
pfr
@pfr@mastodon.bsd.cafe  ·  activity timestamp 6 months ago

Now I just need suggestions for a music server software. I've clocked #navidrome which actually looks sweet. Any others I could consider? I know that's is possible for #jellyfin to also serve music and can connect to music apps. Anyone do this?

  • Copy link
  • Flag this post
  • Block
pfr
pfr
@pfr@mastodon.bsd.cafe  ·  activity timestamp 6 months ago

Now I just need suggestions for a music server software. I've clocked #navidrome which actually looks sweet. Any others I could consider? I know that's is possible for #jellyfin to also serve music and can connect to music apps. Anyone do this?

  • Copy link
  • Flag this post
  • Block
Box464 - Hire me! boosted
Cory Dransfeldt :demi:
Cory Dransfeldt :demi:
@cory@follow.coryd.dev  ·  activity timestamp 7 months ago

📝 I made a music app #Development#Macos#Ios#Music#Navidrome

I've been using Navidrome to stream music for a bit now. It's lightweight, snappy, stable and does everything I need. It lets me stream my own music, mark things as favorites and track my listening habits. It's decidedly nerdy — you need to self-host it (or pay someone to manage it — I assume that's an option somewhere) and I sync new music up to it using rclone. It...

https://www.coryd.dev/posts/2025/i-made-a-music-app

  • Copy link
  • Flag this post
  • Block
Cory Dransfeldt :demi:
Cory Dransfeldt :demi:
@cory@follow.coryd.dev  ·  activity timestamp 7 months ago

📝 I made a music app #Development#Macos#Ios#Music#Navidrome

I've been using Navidrome to stream music for a bit now. It's lightweight, snappy, stable and does everything I need. It lets me stream my own music, mark things as favorites and track my listening habits. It's decidedly nerdy — you need to self-host it (or pay someone to manage it — I assume that's an option somewhere) and I sync new music up to it using rclone. It...

https://www.coryd.dev/posts/2025/i-made-a-music-app

  • Copy link
  • Flag this post
  • Block

bonfire.cafe

A space for Bonfire maintainers and contributors to communicate

bonfire.cafe: About · Code of conduct · Privacy · Users · Instances
Bonfire social · 1.0.2-alpha.34 no JS en
Automatic federation enabled
Log in
Instance logo
  • Explore
  • About
  • Members
  • Code of Conduct