I confirm that:
Page URL or path
https://www.navidrome.org/docs/installation/Podman
Suggestion
I have been running my Navidrome server as a podman quadlet as rootless for about 6 months with no issues. I'd like to propose adding some Example documentation as a sub heading on this page: https://www.navidrome.org/docs/installation/ / Podman
Below isn't perfect but it's a good structure i'd like to see brought in if possible. First time contribution here, but I'd love to get it right. I don't know your repo well enough to do a Merge request or your formatting guidelines yet so I'll pose this as a discussion post. These are the notes i keep around for my quadlet setup.
Thank you for your time and hopefully this is put to good use.
If not already created you'll need a folder here:
mkdir -p ~/.config/containers/systemd
You'll have to create a navidrome.container file under the above directory
-
Enable lingering for the user. This allows containers to start after reboot without user login required
sudo loginctl enable-linger $USER
-
To use enable-linger need:
[Install] WantedBy=default.target
-
Inform systemd of the new unit file.
systemctl --user daemon-reload
This step creates the test-ol.service based on the test-ol.container file.
-
Start the service.
systemctl --user start navidrome.service
The service runs podman to download the Oracle Linux image and then issues the sleep 60 inside the container image.
-
Check the status of the service.
systemctl --user status test-navidrome.service
My Example config (Very Cleaned up)
[Unit]
Description=Navidrome music server
Wants=network-online.target
After=network-online.target
After=local-fs.target
[Container]
ContainerName=Navidrome
Image=docker.io/deluan/navidrome:latest
AutoUpdate=registry
PublishPort=4533:4533
# Data and Config files stored on NFS Share is mounted into a PROD folder
Volume=/path/to/data::/data:z
Volume=/path/to/your/music/Music:/music:z
# Security Label disable needed for SELinux
SecurityLabelDisable=true
Environment=ND_LOGLEVEL=info
# Downloads - Sharing links - Logging
Environment=ND_ENABLEDOWNLOADS=true
Environment=ND_ENABLESHARING=true
Environment=ND_UIWELCOMEMESSAGE="Welcome..."
# Playlist Path
Environment=ND_AUTOIMPORTPLAYLISTS=true
Environment=ND_SMARTPLAYLISTREFRESHDELAY="300s"
Environment=ND_COVERARTPRIORITY="embedded, cover.*, folder.*, front.*, external"
# Plugins Optional
Environment=ND_PLUGINS_ENABLED=true
Environment=ND_PLUGINS_FOLDER="/data/plugins"
Environment=ND_PLUGINS_AUTORELOAD=true
Environment=ND_PLUGINS_LOGLEVEL=debug
Environment=ND_PLUGINS_CACHESIZE="200MB"
# Telemetry. - THESE NEED TO BE TRUE TO ENABLE LASTFM , LISTENBRAINZ, AND SPTOIFY INTEGRATIONS
Environment=ND_ENABLEINSIGHTSCOLLECTOR=true
Environment=ND_ENABLEEXTERNALSERVICES=true
# For scrobbling
Environment=ND_LISTENBRAINZ_ENABLED='true'
Environment=ND_LISTENBRAINZ_BASEURL='https://LISTENBRAINZ.URL/1'
#Environment=ND_LISTENBRAINZ_TOKEN='API TOKEN FOR LISTENBRAINZ'
# LastFM API info - For scrobbling! - You need these here for metadata to come like artist photos
Environment=ND_LASTFM_ENABLED=true
Environment=ND_LASTFM_LANGUAGE=en
Environment=ND_LASTFM_APIKEY='LAST_FM_API_KEY'
Environment=ND_LASTFM_SECRET='LAST_FM_API_SECRET'
[Service]
Restart=unless-stopped
TimeoutStartSec=90
[Install]
WantedBy=default.target
When you get your container working, check your firewall rules you may need to allow ports.
To allow specific ports in the RHEL firewall using firewalld, use the firewall-cmd command with the --add-port option. For example, to open TCP port 8080 permanently:
sudo firewall-cmd --permanent --add-port=8080/tcp
After adding the rule, reload the firewall to apply changes:
sudo firewall-cmd --reload
To verify the port is open, list the active ports:
sudo firewall-cmd --list-ports
For multiple ports, specify them in a comma-separated list:
sudo firewall-cmd --permanent --add-port={8080/tcp,8443/tcp,8009/tcp,8005/tcp}
I confirm that:
Page URL or path
https://www.navidrome.org/docs/installation/Podman
Suggestion
I have been running my Navidrome server as a podman quadlet as rootless for about 6 months with no issues. I'd like to propose adding some Example documentation as a sub heading on this page: https://www.navidrome.org/docs/installation/ / Podman
Below isn't perfect but it's a good structure i'd like to see brought in if possible. First time contribution here, but I'd love to get it right. I don't know your repo well enough to do a Merge request or your formatting guidelines yet so I'll pose this as a discussion post. These are the notes i keep around for my quadlet setup.
Thank you for your time and hopefully this is put to good use.
If not already created you'll need a folder here:
mkdir -p ~/.config/containers/systemdYou'll have to create a navidrome.container file under the above directory
Enable lingering for the user. This allows containers to start after reboot without user login required
sudo loginctl enable-linger $USERTo use enable-linger need:
[Install]WantedBy=default.targetInform systemd of the new unit file.
systemctl --user daemon-reloadThis step creates the test-ol.service based on the test-ol.container file.
Start the service.
systemctl --user start navidrome.serviceThe service runs
podmanto download the Oracle Linux image and then issues thesleep 60inside the container image.Check the status of the service.
systemctl --user status test-navidrome.serviceMy Example config (Very Cleaned up)
When you get your container working, check your firewall rules you may need to allow ports.
To allow specific ports in the RHEL firewall using
firewalld, use thefirewall-cmdcommand with the--add-portoption. For example, to open TCP port 8080 permanently:After adding the rule, reload the firewall to apply changes:
To verify the port is open, list the active ports:
For multiple ports, specify them in a comma-separated list: