Erstelle eine Verzeichnis für Navidrome inkl. der folgenden Unterverzeichnisse.

mkdir -p docker/navidrome
cd docker/navidrome
mkdir -p data logs music

Lege im Navidrome Hauptverzeichnis eine docker-compose.yaml an. Hier ist meine Beispieldatei.

Docker compose

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
service:
  navidrome:
    image: deluan/navidrome:latest
    user: "1000:1000"
    container_name: navidrome
    restart: unless-stopped
    ports:
      - "4533:4533"
    environment:
      ND_LOGLEVEL: "info"
      ND_LOGFILE: "/logs/navidrome.log"
      ND_PORT: "4533"
      ND_MUSICFOLDER: "/music"
      ND_DATAFOLDER: "/data"
      ND_CACHEFOLDER: "/data/cache"
      #ND_BASEURL: "https://music.catbongos.com"
      ND_LISTEN: "0.0.0.0"
      ND_UIWELCOMEMESSAGE: "Welcome to Hellfire"
      ND_UILOGINBACKGROUNDURL: "<vollständige_URL>"
      # Behaviour
      ND_DEFAULTLANGUAGE: "en"
      ND_ENABLECOVERANIMATION: "false"
      ND_ENABLESTARRATING: "false"
      ND_PID_ALBUM: "musicbrainz_albumid|albumartistid,album,albumversion,releasedate"
      ND_ARTISTARTPRIORITY: "external, artist.*, album/artist.*"
      ND_SMARTPLAYLISTREFRESHDELAY: "300s"
      ND_ENABLEDOWNLOADS: "false"
      ND_ENABLESHARING: "true"
      ND_ENABLETRANSCODINGCONFIG: "true"
      # Integrations
      ND_AGENTS: "lastfm,spotify,deezer"
      ND_ENABLEEXTERNALSERVICES: "true"
      ND_ENABLEGRAVATAR: "true"
      ND_LASTFM_ENABLED: "true"
      ND_LASTFM_APIKEY: "<dein_API_Key>"
      ND_LASTFM_SECRET: "<dein_Secret>"
      ND_LASTFM_LANGUAGE: "en"
      ND_LISTENBRAINZ_ENABLED: "true"
      # Transcoding
      ND_TRANSCODINGCACHESIZE: "150MB"
      ND_DEFAULTDOWNSAMPLINGFORMAT: "opus"
    volumes:
      - "./data:/data"
      - "./music:/music"
      - "./logs:/logs"
  # networks:
    # - web

#networks:
  # web:
    # external: true

Bevor wir den Container initiieren, stellen wir noch sicher, dass Docker die benötigten Rechte auf die Verzeichnisse bekommt:

sudo chown -R 1000:1000 data logs music

Jetzt initiieren wir den den Container

docker compose up -d

Überprüfen

docker ps

CONTAINER ID   IMAGE                     COMMAND            CREATED         STATUS         PORTS                                         NAMES

a6abf11ebe5e   deluan/navidrome:latest   "/app/navidrome"   3 seconds ago   Up 2 seconds   0.0.0.0:4533->4533/tcp, [::]:4533->4533/tcp   navidrome

Bam! Läuft

Zuhause kann ich das Webinterface von Navidrome mit der internen Netzwerk IP + dem Port 4533 im Browser aufrufen und mein Adminkonto erstellen.

Navidrome vom Web aufrufen