本地Docker部署开源跨平台音乐服务器Navidrome
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 三的小角落 -- 首页 查阅之前的文章。