Navidrome:可能是更好的音乐流媒体服务器

这里就把Navidrome和Koel做个对比吧,我个人是觉得前者好于后者的,其原因是:

1.Navidrome是Go写的,资源占用非常少。

2.部署更简单,无论是用Docker还是手动部署,就一个二进制文件,下载即用。

3.原生支持中文。

4.因为和Subsonic兼容,所以有很多客户端支持。

当然要说缺点的话,我用了一段时间比较遗憾的是不能通过Web页面上传音乐,另外UI略微丑了一点。上传这个问题后面我会介绍一个临时解决办法。

部署我这里就直接用docker梭哈了,首先安装nginx/certbot/docker和一些需要用到的软件:

apt -y install curl nginx python-certbot-nginx
curl -sSL https://get.docker.com/ | sh
systemctl enable --now nginx docker

安装docker-compose:

curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

新建一个目录进入到这个目录内:

mkdir -p /opt/navidrome && cd /opt/navidrome

新建一个docker-compose.yml:

nano docker-compose.yml

写入如下配置:

version: '3.5'

services:
  navidrome:
    image: deluan/navidrome:latest
    environment:
      ND_SCANINTERVAL: 1m
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
    ports:
      - "127.0.0.1:4533:4533"
    volumes:
      - "./data:/data"
      - "./music:/music:ro"
    restart: unless-stopped

  miniserve:
    image: svenstaro/miniserve:latest
    depends_on:
      - navidrome
    ports:
      - "4534:8080"
    volumes:
      - "./music:/downloads"
    command: "-r -z -u -q -p 8080 -a imlala:password /downloads"
    restart: unless-stopped

前面说了因为navidrome不支持上传功能,所以这里我自己加了个miniserve,然后就可以通过miniserve上传音乐了。

记得把password这个字段改为一个高强度的密码。当然如果你不需要的话可以把这个容器相关的配置删掉。

up起来即可:

docker-compose up -d

确认所有容器都是up状态:

docker-compose ps

之后新建nginx站点配置文件:

nano /etc/nginx/conf.d/navidrome.conf

写入如下配置:

server {
   listen 80;
   server_name navidrome.imlala.best; # 换成你的域名
   client_max_body_size 0;

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;
   }
}

使用certbot签发ssl证书:

certbot --nginx

访问你的域名创建管理员账号:

访问你的服务器IP:4534可以看到miniserve的界面,登录进去可以上传音乐:

曲库是每隔1分钟自动扫描一次:

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注