当前位置:首页 > 技术分析 > 正文内容

本地Docker部署开源跨平台音乐服务器Navidrome

ruisui882周前 (04-15)技术分析15

Navidrome在Github上已经标星超过11.7K。是一个全功能的跨平台开源音乐服务器应用,可以在macOS、Linux、Windows以及Docker等平台上运行,支持传输常见的MP3、FLAC、WAV等音频格式。它允许用户通过Web界面或API进行音乐库的管理和访问。提供音乐库智能管理、智能播放列表、用户权限控制以及多语言支持等多种功能。

项目官网:
https://www.navidrome.org/

Github项目网址:
https://github.com/navidrome/navidrome

请先确保已经安装了docker和docker-compose,本次例子将演示使用docker和docker-compose两种部署方式。

创建两个目录,用于挂载存放数据和音乐文件

本次例子,在根目录下创建一个/data/music目录和一个存放数据的/data/musicdata目录

demouser@demohosts:~$ sudo mkdir -p /data/music /data/musicdata
demouser@demohosts:~$ sudo chmod -R 777 /data/music /data/musicdata
demouser@demohosts:~$ ll /data
总计 16
drwxr-xr-x  4 root root 4096 10月 23 13:47 ./
drwxr-xr-x 24 root root 4096 10月 23 13:47 ../
drwxrwxrwx  2 root root 4096 10月 23 13:47 music/
drwxrwxrwx  2 root root 4096 10月 23 13:47 musicdata/

这创建的两个目录,将用于把容器中数据和音乐文件的目录挂载出来。

拉取Navidrome镜像

如果拉取时有报错,可以修改仓库的配置

demouser@demohosts:~$ docker pull deluan/navidrome:latest
latest: Pulling from deluan/navidrome
1cc3d825d8b2: Pull complete 
75c0824146ea: Pull complete 
4f4fb700ef54: Pull complete 
e1dbf20ea67c: Pull complete 
Digest: sha256:d864c5ddbae508920b157d73b08bd48e93ec8c422003a491edd01a889497582a
Status: Downloaded newer image for deluan/navidrome:latest
docker.io/deluan/navidrome:latest

命令行启动Navidrome容器(二选一)

成功拉取镜像后,就可以在命令行中运行下面的命令启动一个容器。

demouser@demohosts:~$ docker run -d --name navidrome --restart=always -v /data/music:/music -v /data/musicdata:/data -p 4533:4533 deluan/navidrome:latest
0f59022c25d4f77f0c78f975414a44600a98b6b33a76e3dad61db0600e9832e9
demouser@demohosts:~$ docker ps -a
CONTAINER ID   IMAGE                     COMMAND              CREATED         STATUS                            PORTS                                       NAMES
0f59022c25d4   deluan/navidrome:latest   "/app/navidrome"     6 seconds ago   Up 6 seconds (health: starting)   0.0.0.0:4533->4533/tcp, :::4533->4533/tcp   navidrome

docker-compose启动Navidrome容器(二选一)

创建并编辑docker-compose.yml,这里我把文件创建在/data中,文件的内容如下:

demouser@demohosts:/data$ sudo nano docker-navidrome.yaml
[sudo] demouser 的密码: 
demouser@demohosts:/data$ cat docker-navidrome.yaml 
version: "3" 

services: 
  navidrome: 
    image: deluan/navidrome:latest 
    user: 1000:1000 
    # should be owner of volumes 
    ports: 
      - "4533:4533" 
    restart: always 
    environment: 
    # Optional: put your config options customization here. Examples:
      ND_SCANSCHEDULE: 1h 
      ND_LOGLEVEL: info 
      ND_SESSIONTIMEOUT: 24h 
      ND_BASEURL: "" 
    volumes: 
    - "/data/musicdata:/data" 
    - "/data/music:/music:ro" 

规约文件中,给挂载音乐文件的目录添加了只读的权限:ro

保存退出后,执行下方命令启动容器

demouser@demohosts:/data$ docker-compose -f /data/docker-navidrome.yaml up -d
WARN[0000] /data/docker-navidrome.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion 
[+] Running 1/1
  Container data-navidrome-1  Started 

测试远程登录

启动成功后,在可以访问到服务器的其他机器的浏览器中输入 服务器IP:4533,可以看到进入到了Navidrome的登录界面,需要设置一个用户名和密码。输入完成后,点击【CREATE ADMIN】创建用户并登录进系统。

登录后,点击界面右上角的头像图标进入个性化,可以设置语言为中文:

将音乐存放在上面创建的/data/music目录中,Navidrome会自动扫描目录中的音乐,并自动将歌曲分类为各个专辑的形式展现:

对于目录中的歌曲,也有信息和统计。

至此,一个远程运行的音乐播放服务器就部署完成了。



如果您对我的文章有兴趣,我把我发布的文章都归档到我私人网站中去,欢迎访问 Corner 三的小角落 -- 首页 查阅之前的文章。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/3492.html

分享给朋友:

“本地Docker部署开源跨平台音乐服务器Navidrome” 的相关文章

企业如何高效进行费控管理?

作为一个职场人,无论是普通员工、财务人员还是企业管理人,都无法避开报销,而报销,就涉及到了企业成本费用控制,即费控。其控制的内容包括材料消耗成本控制、工资成本控制、费用成本控制。但在实际工作中,员工不知道如何规范化提交报销申请,报销容易频频被打回,导致报销周期长;财务人员也面临着报表滞后、账实不符、...

vue3中父子组件之间传值的详解

首先我们回顾一下vue2中父子组件是怎么传值的,然后对比vue3进行详解。一、vue2中父子组件传值<!-- 父组件 --> <template> <div> // name:父组件把值传给子组件test-child // childFn:...

快速上手React

web前端三大主流框架1、Angular大家眼里比较牛的框架,甚至有人说三大框架中只有它能称得上一个完整的框架,因为它包含的东西比较完善,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等所有功能。对于刚开始学习使用框架的小伙伴们,可以推荐这个框架,学会之后简直能颠覆之前你对前端开发的认...

Git分布式系统---Gitlab多人工作流程

前言在上一次推文中,我们已经很清楚的讲解了如何创建本地仓库、提交(push)项目到远程仓库以及从远程仓库clone(克隆)项目到本地的相关操作。大家可以先去看前面的推文(快速掌握Git分布式系统操作)点击查看目前无论你是否步入社会还是在校学生,都会使用Gitlab来进行团队的代码管理。(可以这样说:...

基于gitlab的PR操作教程

基于gitlab的PR操作教程注:该教程主要基于git命令行操作,其他图形化工具也可完成以下所有操作步骤,顺手即可。推荐工具:Source Tree ,TortoiseGit参考:gitflow一 . 基于分支的PR操作1. 本地切换到master分支1. 拉取最新代码2. 基于master创建ho...

快速掌握 Git:程序员必会的版本控制技巧

在现代软件开发中,版本控制系统(VCS)是开发人员不可或缺的工具。无论是个人项目,还是多人协作的团队开发,良好的版本控制都能确保代码管理的高效性与稳定性。而在版本控制系统中,Git 凭借其分布式、灵活性和高效性,成为了最流行的工具之一。几乎所有的开发团队都在使用 Git 来管理代码版本、协作开发和追...