【好玩的开源项目】使用Docker部署LMS轻量级音乐服务器
一、 LMS介绍
1.1 LMS 轻量级音乐服务器简介
LMS(Logitech Media Server)是一个自托管的音乐流媒体软件,允许用户通过一个直观的网页界面从任何地方访问和管理他们的音乐收藏。它最初由Logitech开发并维护,后来转为社区驱动的开源项目。LMS旨在提供一个强大而灵活的平台,用于管理和播放数字音频文件,支持广泛的音频格式,并与多种音频设备兼容。
1.2 主要特点
-
推荐引擎:基于用户的听歌历史和偏好,自动推荐可能喜欢的新音乐。
-
多值标签:支持丰富的元数据标签,如流派、心情、艺术家等,以更精确地分类和搜索音乐。
-
艺术家关系:识别和记录艺术家之间的不同角色,例如作曲家、指挥家、词作者、混音师、表演者、制作人、重新混音者等。
-
发行类型:区分不同的音乐发行形式,包括专辑、单曲、EP、合辑、现场录音等。
-
MusicBrainz标识符支持:利用全球最大的开放音乐数据库MusicBrainz来处理同名艺术家和发行物的问题,确保数据准确性。
-
ListenBrainz集成:
- 支持Scrobbling功能,同步用户的听歌记录到ListenBrainz服务。
- 同步用户对音乐的“喜爱”反馈。
-
音频转码:为了提高兼容性和降低带宽需求,可以实时转换音频格式。
-
多库支持:能够管理多个音乐库,适合拥有大量或分散存储音乐文件的用户。
-
ReplayGain支持:自动调整音量水平,使所有曲目听起来具有相似的响度。
-
用户管理:提供用户账户创建和管理功能,以及多种认证后端选择,保障了系统的安全性和灵活性。
-
Subsonic/OpenSubsonic API支持:兼容Subsonic协议,方便与其他第三方应用程序和服务进行集成。
二、本地环境介绍
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为
Ubuntu 22.04.1 LTS
。
hostname | IP地址 | 操作系统版本 | Docker版本 | 项目 |
---|---|---|---|---|
jeve 01 | 192.168.3.88 | Ubuntu 22.04.1 LTS | 24.0.7 | LMS |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署LMS轻量级音乐服务器。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven01:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2024-12-17 09:09:23 UTC; 2 days ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 921 (dockerd)
Tasks: 30
Memory: 474.0M
CPU: 35.836s
CGroup: /system.slice/docker.service
3.2 检查Docker版本
检查Docker版本
[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven01:~# docker compose version
Docker Compose version v2.19.1
四、下载LMS镜像
从docker hub拉取LMS镜像
root@jeven01:~# docker pull epoupon/lms
Using default tag: latest
latest: Pulling from epoupon/lms
a7cd7d9a2144: Pull complete
c9b67444e796: Pull complete
df74003e8dae: Pull complete
1290c0f33ad4: Pull complete
7663d4c9acd0: Pull complete
Digest: sha256:f0aa85d92e9e07eb1ae7463fae18dba058977b47d62673f6659b2563acdb821f
Status: Downloaded newer image for epoupon/lms:latest
docker.io/epoupon/lms:latest
五、部署LMS应用
5.1 创建部署目录
创建部署目录/data/lms
mkdir -p /data/lms/{music,data} && cd /data/lms/
5.2 编辑docker-compose.yaml文件
使用docker-cli创建LMS容器,执行以下命令,映射端口可自行修改。
docker run -d \
--name=my_lms \
--restart always \
--user $(id -u ${USER}):$(id -g ${USER}) \
-p 7900:5082 \
-v $(pwd)/music:/music:ro \
-v $(pwd)/data:/var/lms \
epoupon/lms
本次实践部署使用docker compose方式,编辑docker-compose.yaml文件。
version: '3'
services:
lms:
image: epoupon/lms
container_name: my_lms
restart: always
user: "0:0"
ports:
- 7900:5082
volumes:
- /data/lms/music:/music:ro
- /data/lms/data:/var/lms
5.3 创建LMS容器
使用docker-compose.yaml文件创建LMS容器
root@jeven01:/data/lms# docker compose up -d
[+] Running 2/2
✔ Network lms_default Created 0.1s
✔ Container my_lms Started 0.3s
5.4 检查LMS容器状态
检查LMS容器状态,确保LMS容器正常启动。
root@jeven01:/data/lms# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
my_lms epoupon/lms "/usr/bin/lms" lms 8 minutes ago Up 8 minutes 0.0.0.0:7900->5082/tcp, :::7900->5082/tcp
5.5 检查LMS容器日志
检查LMS容器日志,确保LMS服务正常运行。
docker compose logs
六、访问LMS首页
6.1 注册账号
访问地址:http://192.168.3.88:7900,将IP替换为自己服务器IP地址,进入到LMS登录页。如果无法访问,则检查服务器防火墙是否设置,云服务器的安全组端口是否放行等。
自定义注册账号,点击“新建”确认即可。
6.2 访问LMS首页
刷新页面后,输入新建的账号密码,进入LMS首页。
6.3 上传歌曲
将本地音乐文件上传到宿主机的/data/lms/music挂载目录下,如下所示:
root@jeven01:/data/lms/music# pwd
/data/lms/music
root@jeven01:/data/lms/music# ls
'我最闪亮 .mp3'
6.4 扫描歌曲
在设置中,点击扫描选项,保存即可。
点击Music libraries,点击“添加”。
设置音乐目录为/music,确认即可。
点击“Scaner”——“立即扫描”。
回到首页,选择歌手—所有歌手,查看根目录下所有歌曲。
七、总结
通过使用Docker部署LMS轻量级音乐服务器,我们不仅简化了安装和配置过程,还确保了环境的一致性和移植性。LMS凭借其丰富的功能集,如多值标签、艺术家关系管理以及MusicBrainz和ListenBrainz的集成,为用户提供了强大而灵活的音乐管理和播放体验。此外,支持音频转码和ReplayGain等功能进一步增强了用户体验,使得音乐播放更加流畅和一致。无论是音乐爱好者还是家庭音响发烧友,LMS都提供了一个理想的平台来享受个人化的音乐世界。
- 点赞
- 收藏
- 关注作者
评论(0)