同步
一个配对码连接你的所有设备。
你的媒体库、进度和设置会跟着你到每块屏幕。无需账户,任何可读的内容都不会离开你的设备:所有数据在发出之前就已加密。
7Q4MX · K2H9C · V3ZDT · A8N5R
二十个字符,分成四组,每组五个。设置就这么简单。
配对码
在第一台设备上生成,在其他设备上输入。
它是唯一的秘密,而且永远不会离开你的设备。
开启同步
设置 → 跨设备同步。Lumen 会生成配对码。
在其他设备上输入
输错也没关系:I 和 L 会被当作 1,O 会被当作 0,分隔符也无所谓。
就这样
同步开启期间,配对码会以遮挡形式显示,旁边有「显示配对码」和「复制配对码」。关闭同步后,该设备会忘记它。
同步的内容
- 媒体库:已收藏的作品、继续观看、观看状态
- 每一集和每部电影的进度
- 插件及其配置
- 播放器偏好:语言、音频预设、播放设置
- 个人资料,各自有独立的媒体库和进度
留在设备上的内容
配对码、窗口大小和位置、诊断日志,以及你为离线观看而下载的任何内容。
服务器能看到什么
我们存储的,是我们读不懂的。
每台设备根据配对码派生出自己的密钥,并在发送前加密每一行。中继服务器只存储收到的内容,一点也读不懂。
你设备上的一行观看进度
entity watch
key tt1254207:1:3
value {"positionSecs":2537,…}中继服务器存储的内容
space 9f3c…7b21
entity x
row c81a…04ef
payload base64 ciphertext
updated 1788462601007空间 ID 和行 ID 用只有你的设备才持有的密钥派生,因此中继服务器无法判断某一行属于哪部作品,也无法在你的设备察觉不到的情况下把某一行移到另一个位置或更改它的日期。它只在请求期间保留连接设备的网络地址,除此之外什么都不保留。
自行托管
运行你自己的中继服务器。
中继服务器存储的一切都是密文,所以自己托管改变的是谁保管这些字节,而不是谁能读懂它们。
运行中继服务器
Lumen 会在应用旁安装
lumen-relay.exe。它监听 7345 端口,数据保存在同目录的lumen-relay.db中。放在 TLS 后面
用反向代理终止 TLS。只有两个路由,其余一切都可以返回 404。
让你的设备指向它
在每台设备上:设置 → 跨设备同步 → 高级 → 中继地址。重置即可恢复内置中继。
| 内置限制 | |
|---|---|
| 请求体 | 4 MiB |
| 每次请求的行数 | 2,000 |
| 每行的负载 | 256 KiB |
| 每个家庭的行数 | 50,000 |
Windows
lumen-relay.exe --port 7345Caddy,我们使用的站点配置块
sync.example.com {
encode gzip
handle /v1/health { reverse_proxy 127.0.0.1:7345 }
handle /v1/sync { reverse_proxy 127.0.0.1:7345 }
handle { respond 404 }
}Docker,amd64 和 arm64(约 3 MB)
docker run -d --name lumen-relay -p 7345:7345 \
-v lumen-relay-data:/data \
elduinar/lumen-self-host-relay检查它是否响应
curl https://sync.example.com/v1/health