使用 Rclone 挂載 Onedrive 歌曲文件,Navidrome 搭建網站,採用 docker 部署
Rclone#
首先需要在 Windows 系統上運行獲取配置,然後再在伺服器上安裝並掛載文件
獲取 Token#
在 Windows 電腦上下載 Rclone,下載地址:https://rclone.org/downloads/
下載完成後解壓,解壓完成後通過 cmd 進入該文件夾,然後運行
rclone.exe authorize "onedrive"
在彈出的瀏覽器中登錄並授權,授權完成後會打印 Token (大括號之間的,包括大括號)
獲取配置文件#
運行命令
rclone.exe config
根據需求選擇即可,完成後配置文件生成在:
C:\Users\%USERNAME%\AppData\Roaming\rclone
複製配置文件#
首先需要在伺服器創建兩個文件夾
# 該文件夾放配置文件
/home/docker/rclone/config
# 該文件夾放數據,即 Onedrive 映射到的文件夾
/home/docker/rclone/data
然後將配置文件放到對應的文件夾
掛載目錄#
運行命令以拉取鏡像
docker pull rclone/rclone:latest
掛載目錄
docker run --rm \
--volume /root/rclone/config:/config/rclone \
--volume /root/rclone/data:/data:shared \
--volume /etc/passwd:/etc/passwd:ro --volume /etc/group:/etc/group:ro \
--device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined \
rclone/rclone \
mount music:/ /data/music --allow-other --allow-non-empty --vfs-cache-mode writes &
# 上述命令僅最後一行為 Rclone 的命令,根據實際情況修改,格式如下
rclone mount DriveName:Folder LocalFolder
# DriveName Rclone 掛載的名稱
# Folder 雲盤的路徑
# LocalFolder 掛載到本地的文件
上述命令最後的 &
表示後台運行,命令執行後會打印進程的 PID,如需關閉使用命令
kill PID
了解更多?訪問:Linux 學習 第六章 管理運行中的進程
根據示例,此處演示將 Onedrive 中 music
(不區分大小寫) 目錄掛載至 /home/docker/rclone/data/music
參考資料:
- https://rclone.org/onedrive/
- https://rclone.cn/install.html
- Linux 上使用 Rclone 掛載 OneDrive 或 GoogleDrive 並設置開機自啟
部署 Navidrome#
採用 docker-compose,首先創建文件夾,例如
/home/docker/navidrome
創建文件 docker-compose.yml
並填入內容
vim docker-compose.yml
# 輸入內容
version: "3"
services:
navidrome:
image: deluan/navidrome:latest
ports:
- "8001:4533"
restart: unless-stopped
environment:
# Optional: put your config options customization here. Examples:
ND_SCANSCHEDULE: 1h
ND_LOGLEVEL: info
ND_SESSIONTIMEOUT: 24h
ND_BASEURL: ""
volumes:
- "/home/docker/navidrome/data:/data"
- "/home/docker/rclone/data/music:/music:ro"
查看更多變量:Navidrome Configuration Options | Navidrome
然後運行命令
docker-compose up -d
訪問 IP:8001
即可
參考資料:
歌曲信息#
如果想要進行歌曲分類需要把歌曲的信息嵌入歌曲裡,包括歌詞
可以使用工具 MusicTag 進行修改
作者網站:音樂標籤 pc 版
當然還有其他的工具,或者這個 Web 版 xhongc/music-tag-web
使用客戶端#
這個網頁端在 PC 上使用還行,但是手機上使用一言難盡,不過好在有一些客戶端可以使用