Sign inSign up

epochaudio/coverart_docker

By epochaudio

•Updated 2 months ago

Roon Cover Art 的 16:9 Docker 版本,适合电视、宽屏显示器和嵌入式显示设备。

Image
0

10K+

epochaudio/coverart_docker repository overview

Roon Cover Art 的 16:9 Docker 版本,适合电视、宽屏显示器和嵌入式显示设备。

主要功能:

  • 实时显示 Roon 当前播放封面
  • 显示标题、艺术家、专辑信息
  • 停止播放后自动切换封面墙
  • 自动缓存播放过的专辑封面
  • Roon 配对信息持久化
  • 支持浏览器触摸控制
  • 支持 Docker 端直接监听宿主机键盘事件控制 Roon

⁠镜像

epochaudio/coverart_docker:5.0.3
epochaudio/coverart_docker:latest

## 快速安装

在宿主机上准备数据目录:

mkdir -p ./roon-coverart_data/images
printf '%s\n' '{}' > ./roon-coverart_data/config.json

运行容器:

docker run -d \
  --name roon-coverart \
  --network host \
  --restart unless-stopped \
  --device /dev/input:/dev/input \
  --device-cgroup-rule 'c 13:* rwm' \
  -e KEYBOARD_ENABLED=true \
  -e KEYBOARD_DEVICE= \
  -e KEYBOARD_DEVICES= \
  -e KEYBOARD_DEBOUNCE_MS=180 \
  -v "$(pwd)/roon-coverart_data/images:/app/images" \
  -v "$(pwd)/roon-coverart_data/config.json:/app/config.json:rw" \
  -v /dev/input/by-id:/dev/input/by-id:ro \
  -v /dev/input/by-path:/dev/input/by-path:ro \
  epochaudio/coverart_docker:latest

访问:

http://宿主机IP:3666

如果宿主机没有 /dev/input/by-id 或 /dev/input/by-path,可以删除对应的 -v 行。

如果 Docker 不支持 --device-cgroup-rule,可以删除这一行:

--device-cgroup-rule 'c 13:* rwm'

## 更新容器

docker pull epochaudio/coverart_docker:latest
docker stop roon-coverart
docker rm roon-coverart

然后重新执行上面的 docker run 命令。数据目录 ./roon-coverart_data 不要删除。

## 键盘控制

容器可以直接监听宿主机 /dev/input 键盘事件,不需要浏览器页面获得焦点。

默认按键:

- 右方向键 / 下一曲媒体键:下一曲
- 左方向键 / 上一曲媒体键:上一曲
- 空格 / 播放暂停媒体键:播放/暂停
- 上方向键 / 播放键:播放
- 下方向键 / 停止键:停止
- 暂停键:暂停

默认启用:

-e KEYBOARD_ENABLED=true

关闭键盘监听:

-e KEYBOARD_ENABLED=false

指定固定键盘设备:

-e KEYBOARD_DEVICE=/dev/input/by-id/your-keyboard-event-kbd

指定多个设备:

-e KEYBOARD_DEVICES=/dev/input/by-id/kbd1,/dev/input/by-id/kbd2

如果容器启动时没有插键盘,主服务仍会正常启动。之后插入键盘后,执行:

docker restart roon-coverart

容器启动时会扫描键盘设备;运行中不会一直重新扫描。

## 多个输入设备

如果系统里有多个键盘、遥控器、电源键、触摸设备,自动选择可能不是你想要的设备。

建议使用稳定路径:

ls /dev/input/by-id/
ls /dev/input/by-path/

然后用 KEYBOARD_DEVICE 指定具体的 event-kbd 设备。

## OpenWrt / EpochBrain

部分 OpenWrt / EpochBrain 系统可能提供一键安装脚本:

install_coverart.sh

如果系统里有这个脚本,可以直接运行它。脚本可能会使用系统约定的数据目录,例如:

/cache/roon-coverart_data

如果没有这个脚本,请使用上面的通用 Docker 安装方式。

## English

Roon Cover Art Docker is a 16:9 display version for Roon, designed for TVs, wide screens, and embedded display devices.

It supports now-playing artwork, track metadata, art wall mode, persistent Roon pairing, artwork cache, browser touch controls, and optional Docker-side host
keyboard input.

Quick start:

mkdir -p ./roon-coverart_data/images
printf '%s\n' '{}' > ./roon-coverart_data/config.json

docker run -d \
  --name roon-coverart \
  --network host \
  --restart unless-stopped \
  --device /dev/input:/dev/input \
  --device-cgroup-rule 'c 13:* rwm' \
  -e KEYBOARD_ENABLED=true \
  -e KEYBOARD_DEBOUNCE_MS=180 \
  -v "$(pwd)/roon-coverart_data/images:/app/images" \
  -v "$(pwd)/roon-coverart_data/config.json:/app/config.json:rw" \
  epochaudio/coverart_docker:latest

Open:

http://host-ip:3666

If the keyboard is plugged in after the container starts, restart the container:

docker restart roon-coverart

Tag summary

Content type

Image

Digest

sha256:81b698200…

Size

49.1 MB

Last updated

2 months ago

docker pull epochaudio/coverart_docker