系统极客一直在努力
专注操作系统及软件使用技能

Docker 部署 Navidrome:手把手教你搭建私人音乐库

Navidrome

如果你是一位音乐爱好者,你的「音乐收藏」是不是也和我一样,散落在天涯海角——手机、电脑、移动硬盘,甚至是尘封已久的网盘里,全都「躺尸😴」着心爱的歌曲。如果能把它们统一管理,随时随地轻松访问,岂不美哉?

01. 什么是 Navidrome?

Navidrome 是一款免费、开源、轻量级的音乐服务器,能帮你轻松在 Homelab 中搭建私人音乐库,打造自己专属的音乐流媒体服务。

  • 它从设计之初就将速度与效率放在首位,是目前最优秀的自托管音乐流媒体软件之一。
  • 对硬件要求极低,无论是在性能强劲的服务器,还是在小巧的 SBC(如树莓派)上,都能流畅运行。
  • 即使面对海量音乐库,也能轻松驾驭,表现十分稳定可靠。

接下来,我将带你一步步完成 Navidrome 的安装部署,并分享几个实用技巧,帮助你充分发挥它的全部潜力。

02. Docker 环境准备

在开始安装之前,请确保你的服务器已经安装了 Docker 和 Docker Compose:

bash <(curl -sSL https://linuxmirrors.cn/docker.sh)

03. 使用 Docker 部署 Navidrome

3.1 创建 Navidrome 目录

1创建一个 Navidrome 项目目录,用于存放 Docker Compose 部署文件。

2切换到该目录,后续所有命令都将此路径下执行。

mkdir navidrome
cd navidrome

3.2 创建 docker-compose.yml 文件

1使用你熟悉的文本编辑器(如 vim 或 nano),创建一个名为docker-compose.yml的文件,用来定义服务、卷、端口等配置,告诉 Docker Compose 如何构建和运行 Navidrome 实例。

vim docker-compose.yml

2将以下内容粘贴到文件中并保存:

services:
  navidrome:
    image: deluan/navidrome:latest
    container_name: navidrome
    ports:
      - "4533:4533"
    restart: unless-stopped
    environment:
      - TZ=Asia/Shanghai
      - ND_LOGLEVEL=info
      - ND_SCANSCHEDULE=1h
      - ND_SESSIONTIMEOUT=24h
      - ND_DEFAULTLANGUAGE=zh-Hans
      - ND_ENABLETRANSCODINGCACHE=true
    volumes:
      - ./data:/data
      - /path/music/folder:/music:ro

在这个配置文件中,你只需要关注volumes部分:

  • ./data:在当前目录下,创建一个名为data的目录,用来持久化存储 Navidrome 的数据(如 SQLite 数据库和缓存),确保容器重启后数据不会丢失。
  • /path/music/folder:请替换成你实际存放「音乐收藏」的文件夹路径。

3保存文件后,以后台模式运行容器:

docker compose up -d

大功告成!服务端已经配置完毕,就是这么简单。

通过 Docker Compose 部署 Navidrome
通过 Docker Compose 部署 Navidrome

强烈推荐你安装并配置 Watchtower,这样就能让 Docker 容器镜像保持自动更新

3.3 刮削音乐元数据(可选)

如果你的音乐文件缺少元数据,Navidrome 也支持从 Spotify 和 Last.fm 等外部服务自动刮削补充。不过,启用该功能前,需要你先在这两大平台注册免费的 API 账户。

1Navidrome 官方文档提供了详细的「分步指南」,引导你完成操作。

2获取到 API 密钥(API keys)和私钥(secrets)后,将它们添加到docker-compose.yml的环境变量中,例如:

services:
  navidrome:
    image: deluan/navidrome:latest
    container_name: navidrome
    ports:
      - "4533:4533"
    restart: unless-stopped
    environment:
      - TZ=Asia/Shanghai
      - ND_LOGLEVEL=info
      - ND_SCANSCHEDULE=1h
      - ND_SESSIONTIMEOUT=24h
      - ND_DEFAULTLANGUAGE=zh-Hans
      - ND_ENABLETRANSCODINGCACHE=true
      - ND_LASTFM_APIKEY=fm-api-key
      - ND_LASTFM_SECRET=m-api-secret
      - ND_SPOTIFY_ID=spotify-api-key
      - ND_SPOTIFY_SECRET=spotify-api-secret
    volumes:
      - ./data:/data
      - /path/music/folder:/music:ro

3重建 Navidrome 容器,让新配置生效:

docker compose down && docker compose up -d

从现在开始,如果你的音乐文件缺少元数据标签,Navidrome 就会自动从外部服务抓取,并在界面中展示出来。

04. 使用 Navidrome

4.1 访问 Navidrome 网站

1打开浏览器,访问http://<server-ip-address>:4533。推荐在你的 Homelab 中,通过 Nginx Proxy Manager 进行反代并配置 HTTPS 证书。

2首次访问时,系统会提示你创建一个管理员账户。填写好用户名和密码,然后点击「创建管理员」。

创建 Navidrome 管理员账户
创建 Navidrome 管理员账户

3登录成功后,无需额外配置,即可开始享受自己的私人音乐收藏啦!

通过网页访问畅听 Navidrome
通过网页访问畅听 Navidrome

4.2 使用「音流」客户端

  • Navidrome 完全兼容 Subsonic 协议,并与 Airsonic 高度兼容,同时部分支持 Madsonic。
  • 我们可以使用开源的「音流」软件,作为 Navidrome 的客户端。它支持 iOSWindowsAndroid 和 macOS,并提供了与各平台风格一致的原生体验。
将「音流」客户端连接到 Navidrome
将「音流」客户端连接到 Navidrome

大功告成!只要按步骤操作,使用 Docker 部署 Navidrome 就是这么简单。现在,你的私人音乐库已经支持流式播放,让你随时随地、无拘无束地沉浸在最爱❤️的旋律中。

要了解更多关于 Navidrome 的信息,请访问项目官网。我强烈推荐你阅读官方文档,特别是关于环境变量的配置部分。

赞(0)
分享到

评论 抢沙发