搬瓦工搭建 Navidrome 音乐流媒体服务完整教程

Navidrome 是一款轻量级的开源音乐流媒体服务器,兼容 Subsonic 和 OpenSubsonic API,资源占用极低,非常适合在搬瓦工 VPS 上部署。它支持多用户管理、实时转码、歌词显示等功能,可以配合 DSub、Symfonium、Sublime Music 等众多客户端使用,让你随时随地聆听自己的音乐库。

一、准备工作

1.1 系统要求

  • 操作系统:Ubuntu 20.04+(推荐 Ubuntu 22.04)。
  • 内存:Navidrome 非常轻量,512MB 内存即可流畅运行。
  • 磁盘空间:取决于你的音乐库大小,程序本身仅需约 50MB。
  • Docker:需提前安装,参考 Docker 安装教程

1.2 创建目录

mkdir -p /opt/navidrome/data
mkdir -p /opt/navidrome/music

二、Docker Compose 部署

2.1 创建配置文件

/opt/navidrome 目录下创建 docker-compose.yml

cd /opt/navidrome
cat > docker-compose.yml <<'EOF'
version: '3.8'

services:
  navidrome:
    image: deluan/navidrome:latest
    container_name: navidrome
    restart: unless-stopped
    user: "1000:1000"
    ports:
      - "4533:4533"
    environment:
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
      ND_ENABLETRANSCODINGCONFIG: "true"
      ND_TRANSCODINGBITRATE: 192
    volumes:
      - ./data:/data
      - ./music:/music:ro
EOF

2.2 启动服务

docker compose up -d

2.3 查看运行状态

docker compose ps
docker compose logs -f navidrome

启动成功后,浏览器访问 http://你的服务器IP:4533 即可打开 Navidrome Web 界面。首次访问时需要创建管理员账户。

三、上传音乐文件

3.1 使用 SCP 上传

# 上传单个文件
scp song.flac root@你的服务器IP:/opt/navidrome/music/

# 上传整个专辑文件夹
scp -r "艺术家/专辑名/" root@你的服务器IP:/opt/navidrome/music/

3.2 使用 rsync 同步

如果音乐库较大,建议使用 rsync 进行增量同步:

rsync -avz --progress /本地音乐目录/ root@你的服务器IP:/opt/navidrome/music/

3.3 音乐文件组织规范

推荐按照以下结构组织音乐文件,Navidrome 会自动读取文件标签(ID3 Tag)进行分类:

  • /music/艺术家名/专辑名/01 - 曲名.flac
  • 支持格式:MP3、FLAC、AAC、OGG、WMA、APE、WAV 等。
  • 确保音乐文件包含正确的 ID3 标签信息。

四、环境变量详解

Navidrome 提供丰富的环境变量用于自定义配置,以下是常用选项:

  • ND_SCANSCHEDULE:音乐库扫描间隔,默认 1m,可设为 1h0(禁用自动扫描)。
  • ND_LOGLEVEL:日志级别,可选 errorwarninfodebug
  • ND_ENABLETRANSCODINGCONFIG:是否允许用户配置转码参数。
  • ND_TRANSCODINGBITRATE:默认转码码率(kbps)。
  • ND_SESSIONTIMEOUT:会话超时时间。
  • ND_ENABLESHARING:是否启用分享功能。
  • ND_ENABLESTARRATING:是否启用五星评分。

五、客户端配置

5.1 Web 界面

Navidrome 自带一个精美的 Web 播放器,支持播放列表、收藏、搜索等功能,可以直接在浏览器中使用。

5.2 移动端客户端

由于 Navidrome 兼容 Subsonic API,可以使用以下客户端连接:

  • Android:Symfonium(推荐)、DSub、Ultrasonic。
  • iOS:play:Sub、Amperfy、SubStreamer。
  • 桌面端:Sublime Music(Linux)、Sonixd(跨平台)。

客户端配置时,服务器地址填写 http://你的服务器IP:4533,用户名和密码使用在 Navidrome 中创建的账户。

六、Nginx 反向代理与 HTTPS

为了安全地从外部访问,建议配置 Nginx 反向代理并启用 HTTPS:

server {
    listen 443 ssl http2;
    server_name music.example.com;

    ssl_certificate /etc/letsencrypt/live/music.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/music.example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:4533;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

配置反向代理后,需要在 docker-compose.yml 中将端口映射改为仅监听本地:

    ports:
      - "127.0.0.1:4533:4533"

七、多用户管理

Navidrome 支持多用户,每个用户拥有独立的播放列表、收藏和播放记录。管理员可以在 Web 界面的「用户」页面创建和管理用户。每个用户可以通过不同的客户端同时访问音乐库。

八、维护与更新

8.1 手动触发扫描

上传新音乐后,可以在 Web 界面点击右上角菜单中的「扫描」按钮,或等待自动扫描。

8.2 更新 Navidrome

cd /opt/navidrome
docker compose pull
docker compose up -d

8.3 备份数据

tar -czf navidrome-backup.tar.gz -C /opt/navidrome data/

备份 data 目录即可保存所有用户数据、播放列表和设置。音乐文件建议单独备份。

九、常见问题

音乐文件无法被识别

检查文件权限是否正确,确保 Navidrome 容器内的用户有读取权限:

chown -R 1000:1000 /opt/navidrome/music
chmod -R 755 /opt/navidrome/music

转码失败

Navidrome 使用内置的 ffmpeg 进行转码。如果遇到转码问题,可以查看日志获取详细错误信息:

docker compose logs navidrome | grep -i error

总结

Navidrome 是一款极其轻量但功能强大的音乐服务器,在搬瓦工 VPS 上部署后可以打造完全属于自己的音乐流媒体平台。配合丰富的第三方客户端,你可以在手机、平板、电脑上随时享受自己的音乐收藏。如果你还需要管理视频内容,可以参考 Plex 媒体服务器Jellyfin 媒体服务器教程。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的循环折扣。如遇问题,可前往 搬瓦工官网 提交工单。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。