logo 🤗

技术视野

聚焦科技前沿,分享技术解析,洞见未来趋势。在这里,与您一起探索人工智能的无限可能,共赴技术盛宴。

关于 Navidrome

  • Navidrome 是一个自托管的开源音频服务器和流媒体播放器。它让你可以通过任何浏览器或移动设备自由地收听你的音频
  • 简单来说,其类似私人云盘,需要你自己部署,自己上传你的音频。如果你有服务器的话,你就可以在任何地方任何时刻愉快的收听音频了。

准备工作

  1. 有英语阅读能力的,可以先看看 官网部署指南
  2. 拥有下面的一种或多种
  3. 公网Linux服务器(最好,但是储存贵呀)
  4. 局域网Linux服务器
  5. NAS
  6. 虚拟机(用虚拟机安装飞牛来体验)
  7. 如果你是Linux服务器,自行安装docker(确保普通用户可以操作docker)和docker-compose(可选)
  8. 菜鸟教程-Docker安装
  9. 菜鸟教程-Docker Compose安装

快速部署

  1. 准备好一些音频,放某一个目录(确保当前用户可读可写)
  2. ssh登录Linux服务器/NAS,输入id命令,获取你的用户id和组id
$ id
uid=1000(tlntin) gid=1000(tlntin) 组=1000(tlntin),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lxd),998(docker)
  1. 从上面的uid=1000和gid=1000来看,我的用户id是1000,组id也是1000
  2. 创建一个docker-compose.yaml文件,下面是一个示例
services:
  navidrome:
    image: deluan/navidrome:0.58.0
    container_name: navidrome
    ports:
      - "4533:4533"  # 映射端口,左边为最终服务器运行的端口,默认4533
    restart: always  # 开机自启动
    environment:
      PUID: 1000 # 容器运行用户ID,使用id命令可以获取到(暴力点可以设置为0,代表root用户)
      PGID: 1000 # 容器运行用户组ID,使用id命令可以获取到(暴力点可以设置为0,代表root组)
      ND_SCANSCHEDULE: 12h  # 每隔12小时扫描一次
      ND_LOGLEVEL: info # trace 为调试用,默认为info
      ND_SESSIONTIMEOUT: 24h   # 会话有效期
      ND_BASEURL: ""  #绑定域名,可以不填
      ND_SCANNER_PURGEMISSING: "always"  # 自动清除丢失的音频
      ND_DEFAULTLANGUAGE: "zh-Hans"  # 默认语言:中文简体
      ND_TRANSCODINGCACHESIZE: "1000MB"  # 转码缓存
      ND_ENABLESHARING: true  # 启用服务共享(用于分享功能)
      ND_DEFAULTDOWNLOADABLESHARE: true  # 共享可下载
      ND_IMAGECACHESIZE: "5GB"  # 图像缓存,默认100MB,建议设置大一些。
    volumes:
      - "./data:/data"  # 左边配置保存目录,你可以改成绝对路径
      - "/volume1/Music:/music:ro"  # 左边为音频挂载目录,你可以改成你的音频目录
  1. 使用下面两条命令的任意一条命令,启动服务。
docker-compose up -d
# 或者
docker compose up -d
  1. 如果你是NAS,可以创建一个docker项目,然后把上面的docker-compose粘贴进去,应该也可以跑起来。
  2. 部署完成后,输入你的服务ip:4533来访问,例如http://192.168.1.113:4533,然后打开后,首次会让你创建账号密码,记住它。这样部署就完成了,你可以找其它客户端来登录了。

高级部署

  • 如果你想要更好的体验,更好懂你的推荐,更多封面,则可以继续看下去。

获取第三方

  1. last.fm官网,注册,登录,然后申请一个api-key,申请理由用英文,可以让AI帮你写一个,申请应用随便写一个,访问地址可以随便填(不过最好是填你的ipv6公网地址),这个可以帮你记录你的听音频习惯,方便更好的内容推荐,当然,它也可以帮你拿艺术家头像(不过需要外网能力)。可以百度看看别人的图文攻略。
  2. spotify官网,注册,登录,然后申请一个api-key,这个主要是帮你拿艺术家头像用的(需要外网能力)。注意:这个api非必选,理论上我们可以部署LrcApi这个项目来代替。

高级版docker-compose参考

  • 弄好上面的api-key后,可以参考下面的docker-compose.yaml文件进行修改
  • SSL证书可以不配,不配可以用多个域名做反向代理实现https
services:
  navidrome:
    image: deluan/navidrome:0.58.0
    container_name: navidrome
    ports:
      - "4533:4533"  # 映射端口,左边为最终服务器运行的端口,默认4533
    restart: always  # 开机自启动
    environment:
      PUID: 1000 # 容器运行用户ID,使用id命令可以获取到(暴力点可以设置为0,代表root用户)
      PGID: 1000 # 容器运行用户组ID,使用id命令可以获取到(暴力点可以设置为0,代表root组)
      # Optional: put your config options customization here. Examples:
      ND_SCANSCHEDULE: 12h  # 每隔12小时扫描一次
      ND_LOGLEVEL: info # trace 为调试用,默认为info
    #   ND_LOGFILE: "/data/log.txt" # log日志存放位置,可选
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""  # 绑定域名,可以不填
      ND_SPOTIFY_ID: "xxxx"  # Spotify client ID 用于检索艺术家和专辑图片(可选)
      ND_SPOTIFY_SECRET: "xxxx" # Spotify secret 用于检索艺术家和专辑图片
      ND_SCANNER_PURGEMISSING: "always"  # 自动清除丢失的音频
      ND_DEFAULTLANGUAGE: "zh-Hans"  # 默认语言:中文简体
      ND_LASTFM_ENABLED: true  # 启用last.fm(记录你的听音频习惯,对推荐有帮助)
      ND_LASTFM_APIKEY: "xxxxxx"  # last.fm API KEY
      ND_LASTFM_SECRET: "xxxxx" # last.fm API SECRET
      ND_LASTFM_LANGUAGE: "zh"  # 启用last.fm 语言
      ND_TRANSCODINGCACHESIZE: "1000MB"  # 转码缓存
      ND_ENABLESHARING: true  # 启用服务共享(用于分享功能)
      ND_DEFAULTDOWNLOADABLESHARE: true  # 共享可下载
      ND_IMAGECACHESIZE: "5GB"  # 图像缓存,默认100MB,建议设置大一些。
      # ND_TLSCERT: "/ssl/fullchain.cer"  # TLS证书(可选)
      # ND_TLSKEY: "/ssl/xxx.key"   # TLS密钥(可选)
      # ND_REVERSEPROXYWHITELIST: "::/0"  # 允许任意ipv6地址反向代理
    volumes:
      - "./data:/data"  # 配置保存目录,
      - "/volume1/Music:/music:ro"  # 左边为音频挂载目录
      - /volume2/docker/ssl/:/ssl # ssl证书目录,可选
  • 使用下面两条命令的任意一条命令,启动服务。
docker-compose up -d
# 或者
docker compose up -d

版权属于:tlntin
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2025年10月27日 17:39


49 文章数
7 分类数
50 页面数
已在风雨中度过 2年166天9小时7分
目录
来自 《Navidrome部署指南》
暗黑模式
暗黑模式
返回顶部
暗黑模式
暗黑模式
返回顶部