快轉到主要內容

Gonic:自架音樂串流伺服器,支援資料夾模式播放音樂

· 民國114年乙巳年
·
切換繁體/簡體
分類   Linux系統 Self-hosting自架
標籤   Media Server Last.fm
目錄

Ivon今次要分享的是一款簡單的音樂串流伺服器「Gonic」。它可以跑在私人Linux伺服器或者NAS上,提供Subsonic API介面,讓你遠端播放硬碟上的音樂檔,串流聆聽歌曲。

logo.webp

說到音樂串流伺服器,Ivon先前有分享過Navidrome,內建網頁播放器的解決方案。

Gonic跟Navidrome差異最大的點就是支援傳統的「資料夾模式」播放音樂,就是play by folders,因此你可以使用硬碟資料夾結構來瀏覽音樂。這很適合音樂ID3標籤不齊全的用戶使用,也就是一個資料夾一張專輯的模式來整理音樂,並且沒有使用MP3Tag軟體習慣的用戶。

Screenshot_20250511_002601.webp
Gonic搭配Jamstash播放遠端音樂

Gonic還有以下功能:

  • 支援以資料夾或標籤搜尋音樂
  • 短小精悍,搜尋速度快
  • 內建last.fm與listenbrainz服務,能夠線上統計你聆聽過的歌曲
  • 依照last.fm的資料推薦類似歌曲
  • 提供點唱機模式(Jukebox Mode),能反過來以手機遠端控制電腦揚聲器播放音樂。

但相對來說Gonic的功能很精簡,開發者沒有像Navidrome那樣製作網頁播放器,你得自己準備播放音樂客戶端。

其實,就長遠來看,給自己的音樂收藏打上正規的ID3標籤依然是比較好的方式,很多音樂軟體都用這種方式分類。加上有MusicBrainz Picard這類自動打ID3標籤軟體出現,應該盡量減少依賴資料夾模式來播放音樂。對有強迫症的人來說看到「未知的演出者」資訊難道不會覺得煩躁嗎~?

1. 架設Gonic伺服器服務
#

Gonic程式主要由sentriz開發,參考Github指示,我使用Docker部署。

  1. 安裝Docker

  2. 新增docker-compose

mkdir ~/gonic

cd ~/gonic

vim docker-compose.yml
  1. 填入以下內容,新增音樂路徑
version: "2.4"
services:
  gonic:
    image: sentriz/gonic:latest
    environment:
      - TZ=Asia/Taipei # 設定時區
	  - GONIC_JUKEBOX_ENABLED=true # 開啟點唱機模式
    ports:
      - 4747:80 #外部通訊埠
    volumes:
      - ./data:/data # 將Gonic資料庫存在目前目錄
      - /home/user/Music/:/music:ro # 左邊填寫硬碟音樂所在目錄
      - /home/user/Music/podcasts/:/podcasts # 左邊填寫硬碟Podcast所在目錄(如果沒有就填一個空的目錄)
      - /home/user/Music/playlists/:/playlists # 左邊填寫硬碟播放清單所在目錄(如果沒有就填一個空的目錄)
      - ./cache:/cache # 快取目錄

  # 加入audio群組,掛載音效裝置,才可以使用點唱機模式
    group_add:
      - audio
    devices:
      - /dev/snd:/dev/snd
  1. 啟動服務
docker compose up -d
  1. 用瀏覽器開啟http://Linux伺服器IP:4747,登入帳號,預設帳密都是admin。登入後按首頁的password修改密碼。

    1.webp

  2. 點選Recent folders → Scan開始掃描,第一次會比較久,建立資料庫之後就很快了。

    2.webp

  3. (選擇性)申請一組last.fm的API金鑰和祕密,只要填寫APP名稱即可。之後在Gonic這裡填入,再點選Link,開始記錄聆聽的音樂。聆聽音樂是在伺服端紀錄的,一有請求就會傳送聆聽紀錄,客戶端不需要再設定。

    3.webp

  4. 最後,如果要在外網存取Gonic服務,設定內網穿透軟體

2. 安裝Gonic客戶端
#

需要選擇相容Subsonic API的程式。連線方法都很類似,只要在伺服器位址輸入Gonic伺服器的IP位址,還有帳號密碼即可。

電腦端的話有Feishin草莓播放器。可惜的是它們不支援依照資料夾模式播放音樂!

尋找許久,我找到了一個界面還行的Jamstash,結果還是要一款類似Navirdrome的網頁播放器呀!可是,作者自己架的網站,還有Chrome應用程式都掛了,所以得用Docker跑。

我採用fkrivsky/jamstash維護的映像檔,跟Gonic跑在同一個伺服器(可以把這個服務跟Gonic寫在同一個docker-compose裡面)

version: "3"
services:
    app:
        image: 'fkrivsky/jamstash'
        ports:
            - "8008:80"
        restart: unless-stopped

開啟網頁http://Linux伺服器IP:8008,輸入Gonic伺服器IP位址,還有帳號密碼,按Save。

Screenshot_20250511_001733.webp

即會在左側的Artist頁面列出遠端資料夾。

Screenshot_20250511_092524.webp

3. 手機Gonic客戶端
#

需要選擇相容Subsonic API的APP。

Android推薦Tempo by CappielloAntonio,支援資料夾模式播放。

iOS推薦Amperfy by BLeeEZ,支援資料夾模式播放。

4. 用點唱機模式控制電腦播放音樂
#

點唱機模式(Jukebox Mode)需要客戶端支援。以Jamstash為例,在設定界面勾選Jukebox Mode

Screenshot_20250511_005748.webp

這樣從手機或其他電腦選取音樂,音樂便會改從Linux伺服器連接的揚聲器播放。

如果伺服器端是Linux,不要直接用ALSA,可能安裝PipeWire的音訊伺服器會比較好操作,能夠自動切換輸出音效源。

相關文章

雲端音樂播放器Navidrome,自架音樂串流伺服器
分類   Linux系統 Self-hosting自架
標籤   Media Server Last.fm
標籤式圖片管理軟體,Hydrus Network的Docker遠端存取方案
分類   Linux系統 Self-hosting自架
標籤   Hydrus Network Docker Media Server Photo Gallery
Hydrus Network:以標籤分類的圖片管理軟體,數位囤積症救星
分類   Linux系統 Self-hosting自架
標籤   Hydrus Network Photo Gallery Media Server Data Hoarding 4chan

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。