Contents

Navidrome 是適用於 Raspberry Pi 的完美自託管音樂服務器

流媒體音樂是現代生活的一個特徵,大多數人都習慣了 Spotify 和 YouTube 等服務的便利。如果您擁有大量私人音樂收藏,則可以使用 Navidrome 將您喜愛的音樂傳輸到移動設備並收聽網絡廣播。

為什麼使用 Navidrome 從 Raspberry Pi 傳輸音樂?

/bc/images/man-wearing-headphones.jpg

積累大量的音樂庫對於許多人來說是一種有趣的消遣。儘管著名的流媒體服務擁有大量的授權歌曲庫,但訪問不太知名的音樂家通常需要付費訂閱。此外,在眾多可用的流媒體平台中,無法保證一個人的首選服務將持續維護其當前許可的每首音樂作品的權利。

選擇音樂流媒體平台的免費訂閱可能會導致侵入性數據收集行為和廣告,這可能會非常麻煩。更實際的替代方案是通過購買個人曲目或專輯,或者將現有的物理 CD 收藏轉換為數字格式並個人流式傳輸來獲取自己的音樂曲目。

Mopidy 是使用 Raspberry Pi 作為音樂流媒體的幾個可行選項之一。另外,可以採用Jellyfin流媒體中心來實現此目的。值得注意的是,將 Nextcloud 集成到 Raspberry Pi 上為整合各種音樂流應用程序提供了充足的機會。

Navidrome 與其他競爭對手的區別在於,它專門專注於音樂製作並提供多種獨特的屬性,包括在 Raspberry Pi Zero 等極簡硬件上無縫運行的能力。

如何在 Raspberry Pi 上安裝 Navidrome

要在 Raspberry Pi 上設置 Navidrome,必須執行幾項初步操作。首先,有必要按照一系列簡單的說明將您的 Raspberry Pi 轉變為網絡託管服務器。儘管對於這項特定任務來說,安裝 MariaDB 和 PHP 並不是強制性的,但事實證明,安裝它們對於其他各種有趣的 Raspberry Pi 託管項目來說可能是有利的。此外,請確保手動部署最新版本的 Docker Compose。

通過 Secure Shell (SSH) 連接到 Raspberry Pi,並通過為 Navidrome 及其關聯文件創建單獨的文件夾來建立新的目錄結構。

 ssh pi@your-pi-local-ip-address
mkdir navidrome navidrome/data 

為了有效地管理您的媒體文件,為您的音樂和視頻收藏建立指定的存儲區域非常重要。雖然此空間幾乎可以位於您選擇的任何位置,但我們建議在您的個人用戶目錄中指定一個特定文件夾作為最佳解決方案。

 mkdir music 

為了將媒體文件從您的個人計算機傳輸到 Raspberry Pi,請在您的設備上啟動一個新的終端會話,並利用安全複製 (SCP) 實用程序將內容複製到 Raspberry Pi:

 scp -r /path/to/your/music/folder/* pi@your-pi-local-ip-address:~/music/ 

要通過 Raspberry Pi 上的 SSH 訪問 Navidrome 目錄,請使用命令行界面導航到指定位置,然後使用 Nano 文本編輯器在該目錄中創建或編輯文件。

 cd navidrome
nano docker-compose.yml 

將以下行添加到其中:

 version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    user: 1000:1000
    ports:
      - "4533:4533"
    restart: unless-stopped
    environment:
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
    volumes:
      - "/home/pi/navidrome/data:/data"
      - "/home/pi/music:/music:ro" 

首先,如果需要的話,在保存之前按“Ctrl + O”執行撤消操作;其次,按“Ctrl+X”確認保存操作;最後,按“Enter”鍵或單擊工具欄中的“保存”按鈕即可完成該過程。

/bc/images/pull-navidrome-with-docker-compose.jpg

docker-compose-f path/to/docker-compose.yml up--detach

docker-compose up-d

Docker Compose 旨在通過下載必要的映像文件並設置 Navidrome 容器以獲得最佳性能來有效管理多個容器。設置過程完成後,您可以通過本地設備上的網絡瀏覽器輸入 Raspberry Pi 的 IP 地址(應顯示為“your-pi-local-ip-address”)來訪問該應用程序地址欄中的 4533。

/bc/images/create-navidrome-admin-user.jpg

要在此平台上建立管理用戶帳戶,請輸入用戶名和安全密碼,然後使用這些憑據進行身份驗證以獲得訪問權限。登錄後,您會立即註意到您的所有音樂收藏都可供仔細閱讀。

讓您的 Navidrome 實例可通過 Web 訪問

訪問域名註冊商的控制面板並導航至您的域的高級 DNS 設置。通過在主機字段中指定“@”並在值字段中輸入您的本地 IP 地址來創建新的 A 記錄。此外,將生存時間 (TTL) 值設置為允許的最低級別。

為了繼續對 Raspberry Pi 進行必要的配置,需要生成一個新的 Apache 配置文件。

 cd /etc/apache2/sites-available/
sudo nano navidrome.conf 

在修訂後的文件中,納入以下文本:

 <VirtualHost *:80>

    ServerName muo.lol
    ProxyPass / http://127.0.0.1:4533/
    ProxyPassReverse / http:/127.0.0.1:4533/
    ProxyPreserveHost On

</VirtualHost> 

為了使用本網站,您需要為“muo.lol”分配一個唯一的域名。這可以通過您選擇的域名註冊商或網絡託管服務提供商註冊和配置自定義域來實現。通過這樣做,您將允許用戶使用您指定的域而不是“muo.lol”訪問該網站,這增強了功能和專業外觀。

總而言之,利用 Nano 為您所需的主機名創建 TXT 記錄是驗證域所有權的有效方法。通過執行一系列按鍵(例如“Ctrl + O”,然後是“Ctrl + X”),您可以保存並退出 Nano,同時保留在編輯器中所做的任何更改。為了進一步增強您網站上的安全措施,請考慮使用 Let’s Encrypt 及其自動化工具 Certbot 來為您的域獲取並實施傳輸層安全 (TLS) 證書和密鑰。

 sudo certbot 

請從提供的列表中選擇一個域名,然後按 Enter 鍵繼續。

您現在可以使用指定的域名通過 Web 瀏覽器訪問您的 Navidrome 實例,並且所有連接都已轉換為安全的 HTTPS 協議。

/bc/images/navidrome-web-interface.jpg

Navidrome 平台的用戶界面在設計時考慮到了高度的可用性,其主菜單突出顯示在顯示屏的左側。如果這種佈局消耗過多的視覺空間,用戶可以利用位於正上方的漢堡包圖標,這樣可以方便地折疊菜單結構。

通過藝術家、曲目名稱或專輯等多種方式探索我們廣泛的音樂庫。此外,仔細閱讀您最喜歡的曲目、經常播放的曲目、最近播放的曲目以及新添加的唱片,以增強聆聽體驗。

如果您的音樂偏好不確定或您尋求多樣性,您可以選擇隨機生成的播放列表。遺憾的是,當前基於網絡的界面無法提供以特定歌曲為中心的即興混音的可能性;儘管如此,該功能已計劃包含在即將發布的更新中,並且可在某些兼容應用程序中使用。

專輯界面呈現各種功能,例如播放整個專輯、添加特定歌曲的收藏夾和評級,以及將它們排列在播放列表或隊列中以供將來收聽。

用戶界面的右側面板上具有一系列功能,由三個代表不同操作的未定義符號組成。通過單擊初始圖標,視覺顯示將更新為當前信息。隨後的單擊會生成一組與 Navidrome 安裝相關的指標,包括其運行持續時間和目錄總數。另外,通過選擇第三個符號,可以在提示或全面掃描選項之間進行選擇來處理音樂檔案,這可能需要延長的時間段,具體取決於存儲數據的大小。

最後一個菜單選項與管理任務有關,具有允許您自定義個人用戶界面的子選項。此外,您還可以添加或刪除用戶,以及訪問以前使用的客戶端設備和應用程序的記錄。

將廣播電台添加到 Navidrome

/bc/images/stream-radio-on-navidrome.jpg

當然,雖然隨著時間的推移,享受個人選擇的音樂珍品可能會變得單調,但廣播是發現個人喜歡的流派內外的新鮮曲調的特殊手段。

儘管通過互聯網瀏覽器可以輕鬆瀏覽在線廣播,並且構建支持觸摸的 Raspberry Pi 互聯網廣播也是可行的,但將廣播電台合併到 Navidrome 的 Web 界面中使用戶能夠從單個位置無縫訪問廣播電台和媒體庫。

要在 Navidrome 上合併廣播電台,請選擇“廣播”選項並為您的初始廣播電台提供名稱。輸入電台的流媒體 URL,以及可選的電台主頁 URL。輸入所需信息後,單擊“保存”按鈕完成添加。您可以在“收音機”部分中包含多個廣播電台,並且所有電台都可以通過此選項卡訪問。

通過將漸進式 Web 應用程序的功能融入到我們的 Navidrome 安裝的用戶友好界面中,我們確保了所有設備(包括具有較小屏幕的設備)的最佳性能。然而,值得注意的是,兼容性超出了這個特定的 Web 界面,因為 Navidrome 與廣泛的 Subsonic 客戶端完全兼容。憑藉眾多可用選項,用戶可以通過在所選應用程序商店中進行簡單搜索,輕鬆發現並下載他們喜歡的 Subsonic 應用程序。

通過利用在 Raspberry Pi 上運行的 Navidrome 服務器,您可以從全球任何位置廣播您的個性化音樂選擇。然而,Raspberry Pi 的功能遠遠超出了此功能。對於那些擁有大量電影庫但不想依賴 Netflix、迪士尼或 HBO 等流媒體服務的人來說,Jellyfin 提供了一種可行的安裝替代方案。