Navidrome allows you to enjoy your music collection from anywhere, by making it available through a modern Web UI and through a wide range of third-party compatible mobile apps, for both iOS and Android devices.
$ mkdir -p /var/appjail-volumes/navidrome/data \
/var/appjail-volumes/navidrome/music
$ appjail oci run -Pd \
-e PUID=1000 \
-e PGID=1000 \
-e ND_SCANSCHEDULE="1h" \
-e ND_LOGLEVEL="info" \
-e ND_SESSIONTIMEOUT="24h" \
-o overwrite=force \
-o virtualnet=":<random> default" \
-o nat \
-o expose=4533 \
-o container="args:--pull" \
-o fstab="/var/appjail-volumes/navidrome/data /data" \
-o fstab="/var/appjail-volumes/navidrome/music /music nullfs ro" \
ghcr.io/appjail-makejails/navidrome navidrome.env:
DIRECTOR_PROJECT=navidrome
appjail-director.yml:
options:
- virtualnet: ':<random> default'
- nat:
services:
navidrome:
name: navidrome
makejail: gh+AppJail-makejails/navidrome
options:
- expose: 4533
- container: 'args:--pull'
oci:
environment:
- ND_SCANSCHEDULE: 1h
- ND_LOGLEVEL: info
- ND_SESSIONTIMEOUT: 24h
- PUID: 1000
- PGID: 1000
volumes:
- nd_data: /data
- nd_music: /music
volumes:
nd_data:
device: /var/appjail-volumes/navidrome/data
nd_music:
device: /var/appjail-volumes/navidrome/music
options: ronavidrome_from(default:ghcr.io/appjail-makejails/navidrome): Location of OCI image. See also OCI Configuration.navidrome_tag(default:latest): OCI image tag. See also OCI Configuration.
PGID(default:1000): Equivalent toPUIDbut for the Process Group ID.PUID(default:1000): Process User ID for the container's main process, allowing you to match the owner of files written to mounted host volumes to your host system's user. Writable volumes are changed based on this environment variable.
| Name | Owner | Group | Perm | Type | Mountpoint |
|---|---|---|---|---|---|
| appjail-263aca83a3-data | ${PUID} |
${PGID} |
- | - | /data |
| appjail-3e431e873f-music | - | - | - | - | /music |
build:
variants:
- tag: 15.1
containerfile: Containerfile
aliases: ["latest"]
default: true
args:
FREEBSD_RELEASE: "15.1"
NO_PKGCLEAN: "1"
cache_dirs: ["pkgcache0:/var/cache/pkg"]navidrome-musicvolume remains unchanged, allowing for read-only mounts.- If you want to use a configuration file with Navidrome running in AppJail, you can create a
config.tomlconfig file in the/data. - Configuration options can be customized with environment variables as needed. For
appjail-directorjust add them to theservices.{service}.oci.environmentsection. Forappjail oci runuse the-eparameter. Ex:-e ND_SESSIONTIMEOUT=24h. - Remember to change the volumes paths to point to your local paths.
/datais where Navidrome will store its DB and cache,/musicis where your music files are stored. For multi-library setups, you may need to mount additional volumes for each library.
