[Docs Feedback]: Include Examples for PODMAN as a QUADLET
documentationenhancement
### I confirm that:
- [x] This issue is about the **documentation website**, NOT about the Navidrome server
### 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/](url) / 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.
<hr>
If not already created you'll need a folder here:
```bash
mkdir -p ~/.config/containers/systemd
```
You'll have to create a **navidrome.container** file under the above directory
1. Enable lingering for the user. *This allows containers to start after reboot without user login required*
`sudo loginctl enable-linger $USER`
2. To use enable-linger need:
`[Install]
`WantedBy=default.target
3. 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.
4. 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.
5. Check the status of the service.
`systemctl --user status test-navidrome.service`
My Example config (Very Cleaned up)
```container
[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}
```
1 条评论