Contents

Raspberry Pi 架設好用線上音樂播放器 - Navidrome

前陣子都沒有發現好用的音樂播放器,最後用 NextCloud 空間加裝裡面 audio player,但覺得使用樹梅派速度非常慢,再產生亂數音樂覺得一點也不亂數,有時候會聽到同一首歌很近聽多次,最近看到 Navidrome 看到介面還不錯,這邊就來架設看看。

DEMO

https://user-images.githubusercontent.com/6058558/236818476-63371ed6-d6f1-42c3-8a02-edd4b749ca4d.png

官方有Demo網站可以給你試用。Navidrome Demo | Navidrome

心智圖

mindmap root((Navidrome)) 架設 Navidrome 使用 Docker 架設 Navidrome Traefik 反向代理 Navidrome 因為 healthcheck 問題反向代理失敗 WorkAround 解法 libseccomp2 安裝方法排除 Docker 啟動問題

使用 docker 在樹梅派架設

看下官網 docker 有支援 ARM 架構,所以直接設定 docker-compose.yml 就能執行了。

https://user-images.githubusercontent.com/75846914/236116246-ae4cec3b-437d-4aed-9c7d-17098be4e7a8.png

docker-compose.yml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    ports:
      - "4533:4533"
    environment:
      # Optional: put your config options customization here. Examples:
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info
      ND_BASEURL: ""
    volumes:
      - "./data:/data"
      - "/media/USBdrive/ncp2/nextcloud/data/malagege/files/音樂:/music:ro"
1
docker compose up -d

Traefik 加上反向代理設定

參考:

 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
version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    #ports:
    #  - "4533:4533"
    environment:
      # Optional: put your config options customization here. Examples:
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info
      ND_BASEURL: ""
    networks:
      - traefik_network
    volumes:
      - "./data:/data"
      - "/media/USBdrive/ncp2/nextcloud/data/malagege/files/音樂:/music:ro"
    restart: unless-stopped
    labels:
      - "traefik.http.routers.navidrome.rule=Host(`xxx.xxx.duckdns.org`)"
      - "traefik.http.routers.navidrome.tls=true"
    healthcheck:
      disable: true

networks:
  traefik_network:
    external: true

因為 healthcheck 問題反向代理失敗

想說 Traefik 上傳失敗,後來發現是healthcheck unhealthy 健康度關係。有找到 workaround 方法,就是關閉 healthcheck 檢查。

Navidrome 0.40 - unhealthy docker container on armv7 · Issue #773 · navidrome/navidrome

1
2
healthcheck:
  disable: true

其實有比較正解的方法,之前2023年樹莓派重裝 Flexget - 程式狂想筆記這篇在使用 docker 跑 flexget 容器就遇到,但礙於安裝方法複雜就沒特別,這邊還要特別更新 libseccomp2( from buster-backports.),當然要而外特別安裝軟體,不知道未來 apt 更新會不會解決這個問題,這邊就簡單留解決文章。

相關解決 libseccomp2 問題文章:

當初使用 連結 裡面安裝 libseccomp2_2.5.4-1+rpi1+b1_armhf.deb 安裝2023年樹莓派重裝 Flexget - 程式狂想筆記 解決無法啟動容器問題。

https://i.imgur.com/Cz1FWNo.png