2024年11月15日星期五

在vps上怎么用docker安装音乐服务器 - Navidrome

在VPS上使用Docker安装Navidrome音乐服务器的步骤如下:

前提条件

  • 已安装Docker和Docker Compose。

  • 有一个正在运行的VPS,建议操作系统为CentOS、Ubuntu或Debian等Linux系统。

安装步骤

  1. 更新系统并安装Docker(如果尚未安装)
    如果还没有安装Docker,可以使用以下命令安装:
# 更新软件包
sudo apt update && sudo apt upgrade -y  # Ubuntu/Debian
sudo yum update -y && sudo yum upgrade -y  # CentOS

# 安装 Docker
curl -fsSL https://get.docker.com | bash

启动Docker并设置为开机自启动:

sudo systemctl start docker
sudo systemctl enable docker

### 安装 Docker Compose
运行以下命令来安装 docker-compose

sudo apt update
sudo apt install docker-compose -y

这会安装稳定版的 docker-compose
### 验证安装

安装完成后,运行以下命令确认安装成功:

docker-compose --version
  1. 创建Docker Compose文件
    Navidrome可以使用Docker Compose来简化配置。在服务器的目录中创建一个 docker-compose.yml 文件,文件内容如下:
version: '3'

services:
  navidrome:
    image: deluan/navidrome:latest
    container_name: navidrome
    ports:
      - "4533:4533"  # 你可以自定义端口
    environment:
      ND_SCANSCHEDULE: 1h
      ND_LASTFM_ENABLED: "true"
      ND_LASTFM_APIKEY: b3cb054 # 修改成自己的APIKEY
      ND_LASTFM_SECRET: 6c03e643b # 修改成自己的SECRET
      ND_SPOTIFY_ID: 74e668972 # 修改成自己的ID
      ND_SPOTIFY_SECRET: d28d37aec654fd # 修改成自己的SECRET
      ND_LASTFM_LANGUAGE: zh
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
      ND_ENABLETRANSCODINGCONFIG: "true" #在 UI 中启用转码配置
      ND_TRANSCODINGCACHESIZE: "200M" #转码缓存的大小。设置"0"为禁用缓存 默认"100MB"
      ND_IMAGECACHESIZE: "200M"  #图像(艺术作品)缓存的大小。设置"0"为禁用缓存,默认"100MB"
      ND_UIWELCOMEMESSAGE: "Treat yourself well." #web页面的欢迎词
    volumes:
      - ./data:/data                 # 数据文件夹挂载
      - /home/box/music:/music       # 音乐文件夹挂载
    restart: unless-stopped

获取 LASTFM & SPOTIFY 密钥信息

1). 获取 LASTFM 密钥信息

首先需要一个 Last.fm 免费帐户,其次你要能访问 Last.fm

转到 https://www.last.fm/api/account/create 并创建一个 API 帐户。只有应用程序名称 字段是强制性的
屏幕截图 2024-11-14 142529.png
提交表单后,可以从 API account Created 页面获取 API KeyShared Secret
屏幕截图 2024-11-14 142620.png
将获取的密钥信息复制到刚才的 docker-compose.yml 文件内进行替换。

2). 获取 SPOTIFY 密钥信息

在 Spotify 中创建一个免费帐户,然后按照以下步骤操作:

单击 Spotify 的开发者仪表板中的 CREATE AN APP 按钮:https://developer.spotify.com/dashboard/applications
填入 应用名称 应用程序描述 重定向 URL(可以随意填写)计划使用(建议全部勾选)然后保存即可
屏幕截图 2024-11-14 144555.png
屏幕截图 2024-11-14 144822.png
将获取的密钥信息复制到刚才的 docker-compose.yml 文件内进行替换。

  1. 启动Navidrome服务 进入包含 docker-compose.yml 文件的目录,运行以下命令:
docker-compose up -d

这会下载Navidrome镜像并在后台启动容器。

  1. 访问Navidrome
    安装完成后,在浏览器中输入 http://你的VPS_IP:4533,打开Navidrome登录界面。首次登录时会提示创建管理员账户,设置好后即可开始上传音乐和管理音乐库。

  2. 配置防火墙(如果需要)
    如果VPS上有防火墙(如iptables或firewalld),确保打开Navidrome的端口(例如4533):

sudo firewall-cmd --permanent --add-port=4533/tcp
sudo firewall-cmd --reload

这样,你的Navidrome音乐服务器就安装好了,可以通过Web界面管理和播放音乐。
屏幕截图 2024-11-15 101619.png

**卸载

cd /home/docker/navidrome
docker compose down
cd ..
rm -rf /home/docker/navidrome # 完全删除

**音乐 上传 & 删除 **

安装 filebrowser 来管理歌曲文件,可以有效解决音乐 上传 & 删除

直接输入以下命令运行即可:

docker run -d --restart=always \
-v /home/box/music:/srv \  # 冒号左边的文件夹路径需与 Navidrome 保持一致
-p 8003:80 \  # 冒号左边可以改成自己服务器未被占用的端口
--name filebrowser \
langren1353/filebrowser-ckplayer

在Android客户端 Symfonium 中连接 Navidrome 服务器的步骤如下:

1. 打开 Symfonium 并添加新媒体源

  1. 在 Symfonium 主界面,点击右下角的 “+” 按钮,选择 “媒体来源”

  2. 从可用的媒体源列表中选择 Navidrome

2. 配置 Navidrome 服务器连接信息

Symfonium 会要求输入服务器信息,按照以下提示填写:

  • 服务器地址 :输入 Navidrome 服务器的 URL 地址。格式通常为:
http://你的VPS_IP:4533

例如:http://192.168.1.100:4533(将 192.168.1.100 替换为你 VPS 的实际 IP 地址)。

  • 用户名和密码 :输入在 Navidrome 设置的用户名和密码。如果你还没设置账号信息,打开 Navidrome 的 Web 管理界面创建一个用户。

3. 测试连接并保存

  1. 填写完连接信息后,点击 “测试连接” 以确保 Symfonium 能够成功连接到 Navidrome 服务器。

  2. 如果连接测试通过,点击 “保存”

4. 设置同步和扫描选项

  • 连接完成后,Symfonium 会开始同步你的音乐库。你可以在 Symfonium 的设置中自定义同步频率和首选项。

5. 播放音乐

一旦音乐库同步完成,你就可以在 Symfonium 中浏览和播放来自 Navidrome 服务器的音乐了。

如果你已经通过 Nginx Proxy Manager 用域名反代了 Navidrome,那么在 Symfonium 中连接时可以直接使用你的域名,无需填写端口。

设置步骤

  1. 服务器地址
  • 在 Symfonium 的 服务器地址 中填写你的域名,例如:
https://你的域名.com
  • 如果你在反向代理中配置了 HTTPS,确保在地址前使用 https://
  1. 端口
  • 因为使用了域名反向代理,通常无需填写端口。如果 Symfonium 要求填写端口,请使用默认端口:
    • HTTPS :443

    • HTTP :80(如果没有使用 HTTPS)

  1. 用户名和密码
  • 输入 Navidrome 中设置的用户名和密码。
  1. 测试连接
  • 填写完信息后,点击 测试连接 ,确保 Symfonium 能够正常访问你的 Navidrome 服务器。

设置完成后,保存配置,Symfonium 应该就可以通过域名连接到你的 Navidrome 音乐服务器了。

rclone 配置和挂载网盘

rclone 配置和挂载网盘

我主要想用VPS挂载国外的网盘,这里挂Box 网盘举例:

要使用 rclone 配置和挂载 Box 网盘,可以按照以下步骤进行配置: 1. 安装 rclone 确保你已经安装了 rclone。可以使用以下命令来安装(以 Linux 为例):

curl https://rclone.org/install.sh | sudo bash
  1. 运行 rclone 配置 使用以下命令开始配置:
rclone config
  1. 创建新的远程(Remote) 在 rclone 配置界面,选择 n 来创建一个新的远程。

  2. 命名远程 为这个远程命名,输入一个标识名称,例如 box

  3. 选择云存储类型 在提供的云存储列表中,选择 Box 的编号(通常是 7)。

  4. 设置 Box API 密钥 rclone 需要通过 OAuth2 来连接 Box:

  • Client ID 和 Client Secret :如果你有自己的 Box API 应用,可以输入你的 Client ID 和 Client Secret。如果没有,可以直接按回车跳过。

  • OAuth Token :接下来 rclone 会提示你是否要自动配置。输入 y 并按回车,rclone 会自动在浏览器中打开 Box 登录页面,让你授权 rclone 访问你的 Box 网盘。

  • 浏览器授权 :在浏览器中登录你的 Box 帐户,并授权 rclone 访问。

  1. 测试连接 配置完成后,你可以选择 q 退出配置界面,然后使用以下命令测试连接是否正常:
rclone lsd box:

如果成功,应该能看到 Box 网盘中的目录。

  1. 挂载 Box 网盘 可以使用 rclone mount 命令将 Box 网盘挂载到本地系统上:
rclone mount box:music /home/box/music --vfs-cache-mode writes

这里的box:music 是网盘挂载的目录而 /home/box/music 是你想要挂载的本地目录路径。--vfs-cache-mode writes 可以提高写入速度和稳定性。

自动挂载(可选)

如果希望 VPS 每次启动时自动挂载 Box 网盘,可以将 rclone mount 命令添加到系统的 systemd 服务中: 1. 创建 systemd 服务文件

sudo vi /etc/systemd/system/rclone-mounts.service
  1. 编辑服务文件 ,输入以下内容:
[Unit]
Description=Mount Box Drive using rclone
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/rclone mount box:music /home/box/music --vfs-cache-mode writes
ExecStop=/bin/fusermount -uz /home/box/music
Restart=always
User=root

[Install]
WantedBy=multi-user.target
  1. 启动并启用服务
sudo systemctl daemon-reload
sudo systemctl start rclone-mounts
sudo systemctl enable rclone-mounts

这样可以在每次 VPS 重启时自动挂载 Box 网盘。

在同一个服务文件中挂载多个网盘

可以在一个 systemd 服务文件中添加多个 rclone mount 命令,适合于网盘数量较少的情况。 1. 创建挂载目录 与上面相同,为每个网盘创建挂载目录:

sudo mkdir -p /home/box
sudo mkdir -p /home/gdrive
  1. 创建一个综合的 systemd 服务文件
sudo vi /etc/systemd/system/rclone-mounts.service
  1. 编辑服务文件内容 内容如下:
[Unit]
Description=Mount multiple cloud drives using rclone
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/rclone mount box: /home/box --vfs-cache-mode writes &
ExecStart=/usr/bin/rclone mount gdrive: /home/gdrive --vfs-cache-mode writes &
ExecStop=/bin/fusermount -uz /home/box
ExecStop=/bin/fusermount -uz /home/gdrive
Restart=always
User=root

[Install]
WantedBy=multi-user.target

ExecStart 中,使用 & 符号将每个挂载命令放到后台运行。

  1. 启用并启动服务
sudo systemctl daemon-reload
sudo systemctl start rclone-mounts
sudo systemctl enable rclone-mounts

这种方法可以将多个网盘挂载到同一个服务中,适合需要挂载多个网盘的情况。