原文地址:https://lala.im/7660.html,請支持原作者!該處僅作轉載。
这里就把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分钟自动扫描一次: