1. 前言
之前小俊給大家介紹過 Koel
音頻流服務,就是為了解決大家的這個問題:下載下來的音樂,只能在本機欣賞,難以在多設備共享,如果自己搭建一個音樂服務器,然后再上傳自己喜歡的音樂,就太巴適了!小俊最近發(fā)現了一個程序—— Navidrome
,小俊這就來推薦給大家啦!還帶來了它的部署教程哦!滑下去細看吧!
1.1 官方網站
官方網站: https://www.navidrome.org/
官方Github: https://github.com/navidrome/navidrome
2. Navidrome 簡介
2.1 簡介
???? Navidrome is an open source web-based music collection server and streamer. It gives you freedom to listen to your music collection from any browser or mobile device. It’s like your personal Spotify!Navidrome can be used as a standalone server, that allows you to browse and listen to your music collection using a web browser.It can also work as a lightweight Subsonic-API compatible server, that can be used with any Subsonic compatible client.
???? Navidrome是一個開源的基于Web的音樂收藏服務器和流媒體。它讓你自由地傾聽你的來自任何瀏覽器或移動設備的音樂收藏。這就像你的個人Spotify!Navidrome可以用作獨立服務器,允許您使用Web瀏覽器瀏覽和收聽音樂收藏。它還可以作為輕量級的亞音速API兼容服務器,可以與任何亞音速兼容的客戶端一起使用。
2.2 特性
- Handles very large music collections
- Streams virtually any audio format available
- Reads and uses all your beautifully curated metadata
- Great support for compilations (Various Artists albums) and box sets (multi-disc albums)
- Multi-user, each user has their own play counts, playlists, favourites, etc…
- Very low resource usage
- Multi-platform, runs on macOS, Linux and Windows. Docker images are also provided
- Ready to use binaries for all major platforms, including Raspberry Pi
- Automatically monitors your library for changes, importing new files and reloading new metadata
- Themeable, modern and responsive Web interface based on Material UI
- Compatible with all Subsonic/Madsonic/Airsonic clients
- Transcoding on the fly. Can be set per user/player. Opus encoding is supported
- Translated to various languages
[quote color=“danger”]Note:
The master branch may be in an unstable or even broken state during development.
Please use releases instead of the master branch in order to get a stable set of binaries.[/quote]
[quote color=“danger”]注意:
在開發(fā)過程中,master分支可能處于不穩(wěn)定甚至損壞狀態(tài)。 請使用正式版本而不是master分支,以便獲得一組穩(wěn)定的二進制文件。[/quote]
3. 準備工作
- 【必需】一臺服務器(推薦 騰訊云輕量應用服務器
HK
或境內,其他服務器(如 CloudCone 、 RackNerd 、家里云或者各家企業(yè)的私有云亦可 - 【建議】操作系統(tǒng):
Debian 11
,騰訊云輕量應用服務器推薦Ubuntu20.04-Docker20
- 【建議且必需】域名一枚,并解析到服務器上
- 【可選建議使用反向代理本教程選用NPM】安裝好Nginx Proxy Manager( 相關教程 )
注意
[quote color=“danger”]這是一篇全新安裝教程,若你的服務器已有環(huán)境或者已有數據請謹慎重裝系統(tǒng)!?。】芍苯犹?br>6.2 環(huán)境準備(其他服務器)
繼續(xù)閱讀。
這是一篇全新安裝教程,若你的服務器已有環(huán)境或者已有數據請謹慎重裝系統(tǒng)?。?!可直接跳至6.2 環(huán)境準備(其他服務器)
繼續(xù)閱讀。
這是一篇全新安裝教程,若你的服務器已有環(huán)境或者已有數據請謹慎重裝系統(tǒng)!?。】芍苯犹?6.2 環(huán)境準備(其他服務器)
繼續(xù)閱讀。
[/quote]
本文軟件基于騰訊云輕量應用服務器安裝,建議配置如上說明,教程使用的騰訊云輕量應用服務器系統(tǒng)為 Ubuntu Server 20.04 LTS 64bit
!理論上騰訊云輕量應用服務器為 Ubuntu20.04-Docker20
的服務器操作應與本文基本一致(包括過程與報錯),其他系統(tǒng)為 Debian
或者 Ubuntu
的服務器應與本文大同小異!
騰訊云輕量應用服務器購買地址: https://curl.qcloud.com/XqKjWCYA
騰訊云上云精選: https://curl.qcloud.com/ujD237Hl
騰訊云云產品特惠專區(qū): https://curl.qcloud.com/TPJfrddE
4. 視頻教程
5. 界面演示
5.1 初始化頁
5.2 專輯頁
5.3 專輯內容頁
5.4 用戶頁
5.5 個性化頁
5.6 歌單頁
5.7 分享頁
6. 部署 Navidrome
6.1 環(huán)境準備(騰訊云輕量應用服務器)
該步驟特別為使用騰訊云輕量應用服務器的用戶準備,若你不是用騰訊云輕量應用服務器部署該程序,可以直接轉到 6.2 環(huán)境準備(其他服務器)
繼續(xù)閱讀。
6.1.1 重裝系統(tǒng)
[quote color=“danger”]此操作前請確保服務器上無重要程序、文件?。?!請確保服務器上的數據已經備份好?。。?br> 此操作前請確保服務器上無重要程序、文件?。?!請確保服務器上的數據已經備份好?。?!
此操作前請確保服務器上無重要程序、文件?。?!請確保服務器上的數據已經備份好!?。?br> [/quote]
進入騰訊云輕量應用服務器的控制臺,進入 重裝系統(tǒng)
界面,然后選擇 使用容器鏡像
,列表中選擇 Ubuntu20.04-Docker20
, 請確保服務器上無重要程序、文件!??!請確保服務器上的數據已經備份好!??!
然后點擊勾選 確認已了解以上內容,我確定已備份完成
,而后點擊確定即可完成系統(tǒng)重裝。
騰訊云輕量應用服務器這邊我們直接選擇 Docker
容器鏡像,就可以跳過安裝 Docker
、 docker-compose
的步驟(如果你使用的是境內服務器,騰訊云的 Docker
容器鏡像已經配置好了國內鏡像源,可以加速訪問 Docker
鏡像資源)。由于騰訊云的 Docker
容器鏡像中的 Docker
已經安裝了 docker-compose
。所以下文中若你見到 docker compose
命令,請你使用使用 docker-compose
命令!
6.1.2 登錄服務器
OrcaTerm
(原名 WebShell
)是騰訊遨馳云原生操作系統(tǒng)中 CVM
、 Lighthouse
、裸金屬等產品的統(tǒng)一網頁終端,幫助用戶隨時隨地通過瀏覽器遠程登錄服務器管理業(yè)務,相比本地遠程終端更輕量便捷,無需掌握 SSH
和 FTP
也可輕松操作。
進入騰訊云輕量應用服務器的控制臺,點擊右上方的 登錄
,使用騰訊云正在公測的 OrcaTerm
登錄到服務器。
然后點擊登錄,即可登錄到服務器中
輸入下面這句命令登錄到 root
賬號
sudo -i
6.1.3 安裝 Nginx Proxy Manager(可選建議使用反向代理本教程選用NPM)
安裝 Nginx Proxy Manager
的詳細教程小俊之前也寫過哦,也配有詳細的視頻版本,需要學習的朋友可以點擊這篇文章學習??????鏈接:【教程】使用騰訊云輕量應用服務器搭建Nginx Proxy Manager,優(yōu)美簡單地解決反向代理!https://www.smalljun.com/archives/3113.html ,當然想要使用反向代理的小伙伴要是熟悉 Nginx
,也可以自己手搓 Nginx
進行反向代理哦!你想用寶塔面板的話,也是沒有問題噠!
6.2 環(huán)境準備(其他服務器)
該步驟為各種服務器的環(huán)境準備通法,若你使用騰訊云輕量應用服務器部署該程序并已經仔細閱讀 6.1 環(huán)境準備(騰訊云輕量應用服務器)
并按步驟完成操作,可以跳過該步驟,直接轉到 6.3 部署 Navidrome
繼續(xù)閱讀。
6.2.1 更新 Packages 并安裝必要軟件包
執(zhí)行以下命令,更新 Packages 并安裝必要軟件包
apt -y update
apt -y install curl
6.2.2 安裝并啟動 Docker
6.2.2.1 境外服務器安裝 Docker
執(zhí)行以下命令,境外服務器安裝 Docker
curl -fsSL https://get.docker.com | bash -s docker
6.2.2.2 境內服務器安裝 Docker
執(zhí)行以下命令,境內服務器使用阿里云鏡像源安裝 Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
執(zhí)行以下命令,境內服務器使用國內 daocloud 一鍵安裝命令安裝 Docker
curl -sSL https://get.daocloud.io/docker | sh
6.2.2.3 啟動 Docker
輸入并執(zhí)行以下命令,啟動 Docker
systemctl start docker
再執(zhí)行以下命令,查看 Docker
的運行狀態(tài)
systemctl status docker
最后執(zhí)行以下命令,設置 Docker
開機自啟動
systemctl enable docker
由于我們通過以上一鍵腳本安裝的 Docker
為最新版本,新版本的 Docker
自帶 compose
這個子命令,所以我們無需額外安裝 docker-compose
。下文中若你見到 docker-compose
命令,請你使用使用 docker compose
命令!
使用方面僅有一個 -
(dash)字符只差,新版使用 docker compose
命令,而如果你是舊版本就使用 docker-compose
命令。
6.2.3 安裝 Nginx Proxy Manager(建議使用反向代理本教程選用NPM)
安裝 Nginx Proxy Manager
的詳細教程小俊之前也寫過哦,也配有詳細的視頻版本,需要學習的朋友可以點擊這篇文章學習??????鏈接:【教程】使用騰訊云輕量應用服務器搭建Nginx Proxy Manager,優(yōu)美簡單地解決反向代理!https://www.smalljun.com/archives/3113.html ,當然想要使用反向代理的小伙伴要是熟悉 Nginx
,也可以自己安裝 Nginx
進行反向代理哦!你想用寶塔面板的話,也是沒有問題噠!
6.3 部署 Navidrome
6.3.1 新建目錄
執(zhí)行以下命令,新建目錄
mkdir -p /opt/docker/navidrome && cd /opt/docker/navidrome && mkdir -p /music && chmod 755 -R /music
6.3.2 新建docker-compose.yaml文件并編輯
執(zhí)行以下命令,新建 docker-compose.yaml
文件并編輯
nano docker-compose.yaml
然后輸入以下配置內容,然后 Ctrl X + y +回車
退出并保存即可。
---
version: "3"
services:
navidrome:
image: deluan/navidrome:latest
ports:
- 2079:4533
restart: unless-stopped
environment:
ND_SCANSCHEDULE: 1h
ND_LOGLEVEL: info
ND_SESSIONTIMEOUT: 24h
ND_BASEURL: ""
ND_DEFAULTLANGUAGE: zh-Hans
#設置默認語言為簡體中文
ND_ENABLESHARING: "true"
#開啟共享功能
volumes:
- /opt/docker/navidrome:/data
- /music:/music:ro
如下圖所示
注意:
-
docker-compose.yaml
文件中2079
為暴露端口,如被占用,請自行更改替換,需要在云服務器的控制臺防火墻開放相應端口!
6.3.3 啟動容器
輸入執(zhí)行以下命令后臺啟動容器
docker compose up -d #新版本Docker使用該命令
docker-compose up -d #舊版本Docker使用該命令,例:上面提到的騰訊云輕量應用服務器的Docker鏡像中自帶的Docker-compose
如下圖所示
啟動完后再輸入執(zhí)行以下命令確認所有容器都是 running
或 up
狀態(tài)
docker compose ps #新版本Docker使用該命令
docker-compose ps #舊版本Docker使用該命令,例:上面提到的騰訊云輕量應用服務器的Docker鏡像中自帶的Docker-compose
如下圖所示
至此,我們已經安裝完成 Navidrome
,若你無域名或者不想給程序使用域名,瀏覽器訪問服務器 IP:2079
即可訪問!
6.4 配置反向代理
先把域名解析到服務器(如果有小白不會解析可以進入 小俊博客的QQ群:199175766 詢問,群主就是小俊,一般周末在線,后面考慮寫一篇域名解析教程!進入 Nginx Proxy Manager
,點擊 Hosts
,然后點擊 Add Proxy Host
,按下圖進行配置,下圖中的 172.17.0.1
可能有所不一,請執(zhí)行 ip addr
自行查找 docker0
網卡的內網IP!
Domain Names:填寫你想用在該程序的域名
Scheme:默認http #一般不用改
Forward Hostname / IP:172.17.0.1 #一般為 `172.17.0.1` ,可能有所不一,請執(zhí)行 `ip addr` 自行查找 `docker0` 網卡的內網IP!
Forward Port:2079 #暴露端口(若跟著本文未修改 `yaml` 文件中的暴露端口。應為 `2079` )
如下圖所示
先不要著急著點 Save
,大家先去 DNS
提供商解析域名哦!然后我們可以為程序添加上 SSL
證書,給他加上一道小綠鎖,不過如果你點了也沒關系,沒點 Save
的朋友點擊 SSL
,然后點擊 Request a new SSL Certificate
,然后把 Force SSL
和 HTTP/2 Support
打開,修改一下 Email Address for Let's Encrypt
的郵箱,然后 Save
即可;點擊了 Save
的朋友,點擊右邊的三點,點擊 Edit
,重復上述步驟即可!
如下圖所示
至此,我們已經部署完成 Navidrome
這一個功能強大的 Navidrome
音樂服務器程序。瀏覽器訪問你剛剛設置的域名即可訪問啦,然后注冊管理員用戶!
注意:
- 需要在服務器的后臺防火墻開放相應端口!需要開放
80 tcp
、443 tcp
與81 tcp
哦,如果你不使用域名訪問程序,則只需要開放2079 tcp
。
7. 簡單使用教程
7.1 創(chuàng)建管理員用戶
首次打開 Navidrome
程序,按說明填寫好設置好用戶名、密碼與確認密碼等信息,然后點擊 創(chuàng)建管理員
完成注冊。
7.2 創(chuàng)建新用戶(可選)
如果您有朋友或家人也想使用該應用程序,則可以為他們創(chuàng)建一個帳戶,且他們必須在首次登錄時更改密碼。
點擊右上角頭像,再點擊用戶,進入用戶管理面板,點擊頁面右方 新建
,按說明輸入用戶名、名稱、郵箱以及密碼等信息即可創(chuàng)建新用戶。
7.3 搭配客戶端使用
除了自己的 Web UI
,Navidrome
應該與所有 Subsonic
客戶端兼容。以下客戶端經過測試并確認工作正常:
iOS: play:Sub, substreamer, Amperfy and iSub
Android: DSub, Subtracks, substreamer, Symfonium and Ultrasonic
Web: Feishin, Thunderdrome, Airsonic Refix, Subplayer, Aurial, Jamstash and Subfire
Desktop: Sonixd (Windows/Linux/macOS), Feishin (Linux/macOS), Sublime Music (Linux), Supersonic (Windows/Linux/macOS) and Submariner (macOS)
CLI: Jellycli (Windows/Linux) and STMP (Linux/macOS)
Connected Speakers:
Sonos: bonob
Alexa: AskSonic
Other:
Subsonic Kodi Plugin
Navidrome Kodi Plugin
HTTPDirFS
upmpdcli: expose Navidrome as a UPnP/DLNA media library. See the discussion.
For more options, look at the list of clients maintained by the Airsonic project.
7.4 上傳音樂
你可以通過各種方式包括但不限于OrcaTerm、SFTP、FTP與各類文件管理器等,上傳音樂至 /music
目錄下, Navidrome
會自動檢測你存放在 /music
中的音樂,路徑是我們在 docker-compose.yaml
設置的。
7.5 歌單功能
點擊左側邊欄的 歌單
,即可進入歌單功能,可以新建歌單享受
點擊左側邊欄的 歌曲
,進入歌曲列表,然后可以選擇歌曲并將其添加至歌單
8. 目前遇到的問題
8.1 境內服務器難以安裝 Docker
建議直接執(zhí)行以下命令,安裝 Docker
apt install docker.io
然后,參考小俊之前寫過的??????【教程】CentOS系統(tǒng)Docker的詳細安裝教程https://www.smalljun.com/archives/3174.html ,安裝 Docker-compose
,然后再進行 第6.2步及其后續(xù)操作
9. Issues
有問題可以去 Github 提 Issues
,也可以在評論區(qū)互相交流探討哦!
10. 總結
Navidrome
是一款功能很強大的音樂服務器程序,支持通過多平臺多款客戶端,支持大部分音頻格式,占用資源極低,還支持多用戶與即時轉碼等功能,大家如果發(fā)現它別的特點功能可以在評論區(qū)踴躍討論!或者還有什么類似的程序大家也可以評論分享一下!文章來源:http://www.zghlxwxcb.cn/news/detail-853752.html
本文的文章結構部分參考自我不是咕咕鴿,在此感謝我不是咕咕鴿提供的文章結構思路.文章來源地址http://www.zghlxwxcb.cn/news/detail-853752.html
到了這里,關于【實用的開源項目】使用服務器部署Navidrome音樂服務器,又一款開源的音樂服務器程序!的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!