音乐管理方案
Navidrome
使用Navidrome管理音乐
部署
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| version: "3" services: navidrome: image: deluan/navidrome:latest ports: - "4533:4533" environment: ND_SCANSCHEDULE: 1m ND_SPOTIFY_ID: 4cd036bsq** ND_SPOTIFY_SECRET: 249ca01a** ND_LOGLEVEL: info ND_SESSIONTIMEOUT: 24h ND_BASEURL: "" volumes: - "./data:/data" - "./music:/music:ro"
|
Spotify同步
在 Spotify 中创建一个免费帐户,然后按照以下步骤操作
https://developer.spotify.com/dashboard/applications注册地址,然后单击 Spotify 的开发者仪表板中的CREATE AN APP
1 2
| ND_SPOTIFY_ID Spotify 客户端 ID ND_SPOTIFY_SECRET Spotify 客户端 Secret
|
转码设置
1 2 3 4
| 转码设置之所以要转码,是因为无损的文件比较大,一般都有几百M,所以需要进行转码成,便于客户端进行播放 但 Navidrome 出于安全原因,禁用了从 Web 界面更改参数,所以需要先修改 Docker 的环境变量 ND_ENABLETRANSCODINGCONFIG 设置为 true 才能支持转码功能 ND_TRANSCODINGCACHESIZE 转码缓存的大小。设置 0 为禁用缓存,默认为 100MB
|
miniserve
Navidrome无法直接上传音乐文件,需要文件服务器来管理。
看到中文博客上用miniserve,搭了一个,但是非常不好用
1 2 3 4 5 6 7 8 9 10 11 12
| version: "3" services: miniserve: image: svenstaro/miniserve:latest depends_on: - navidrome ports: - "4534:8080" volumes: - "./music:/downloads" command: "-r -z -u -q -p 8080 -a username:passwd /downloads" restart: unless-stopped
|
Nextcloud
在考虑nextcloud、owncloud、seafile,seafile的文件不是直接保存的,而是分块加密保存的,虽然性能强大,但是不太符合我的需求。(有时间考虑搭一个seafile)
nextcloud是非常热门的文件服务方案,功能非常多。
尝试搭建,但是功能多过,过于臃肿,不太好用,而且php太慢了,1核2G的服务器想用点轻量的东西。
部署
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| version: '3'
services: db: image: mysql restart: always volumes: - ./cloud/db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=FtLpb2Mwx3Qc4BTJ7bmh - MYSQL_PASSWORD=Ks1acs2R2KU5axpbQ7AU - MYSQL_DATABASE=nextcloud - MYSQL_USER=ryaoknw networks: - nextcloud
app: image: nextcloud restart: always ports: - 4534:80 links: - db volumes: - ./cloud/config:/var/www/html/config - /root/nextcloud:/var/www/html/data - ./cloud/apps:/var/www/html/apps networks: - nextcloud environment: - MYSQL_PASSWORD=Ks1acs2R2KU5axpbQ7AU - MYSQL_DATABASE=nextcloud - MYSQL_USER=ryaoknw - MYSQL_HOST=db
networks: nextcloud:
|
cloudreve
找到了cloudreve和alist, alist的侧重不太一样,决定用cloudreve,cloudreve支持webdav,也可以当个网盘用,但是不是文件原始目录结构,操,又不能用。
部署
先创建空文件conf.ini
、cloudreve.db
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| version: "3" services: cloudreve: container_name: cloudreve image: cloudreve/cloudreve:latest restart: unless-stopped ports: - "5212:5212" volumes: - ./temp_data:/data - ./cloudreve/uploads:/cloudreve/uploads - ./cloudreve/conf.ini:/cloudreve/conf.ini - ./cloudreve/cloudreve.db:/cloudreve/cloudreve.db - ./cloudreve/avatar:/cloudreve/avatar depends_on: - aria2 aria2: container_name: aria2 image: p3terx/aria2-pro restart: unless-stopped environment: - RPC_SECRET=DGDj6tUgiBMacKZad4zW - RPC_PORT=6800 volumes: - ./aria2/config:/config - ./temp_data:/data
|
FileBrowser
文件原始目录结构的文件服务,直接对应服务器文件目录。
部署
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| version: '3' services: filebrowser: image: filebrowser/filebrowser:latest container_name: filebrowser restart: always ports: - "8089:80" networks: - filebrowser volumes: - /home/root:/srv - ./filebrowser.db:/database.db - ./.filebrowser.json:/.filebrowser.json - /etc/localtime:/etc/localtime:ro logging: driver: 'json-file' options: max-size: '1m' networks: filebrowser:
|
1 2
| touch filebrowser.db touch .filebrowser.json
|
编辑.filebrowser.json
1 2 3 4 5 6 7 8 9
| { "address": "0.0.0.0", "port": 80, "locale": "zh-cn", "baseURL": "", "log": "stdout", "database": "/database.db", "root": "/srv" }
|