1 つのコードで、デバイスをつなぐ。
ライブラリ、視聴状況、設定が、どの画面にもついてきます。アカウントはなく、読める形のものがデバイスの外に出ることはありません。すべて送信前に暗号化されます。
5 文字ずつ 4 グループの 20 文字。設定はこれだけです。
最初のデバイスで作り、ほかのデバイスで入力。
これが唯一の秘密で、デバイスの外に出ることはありません。
同期をオンにする
「設定」→「デバイス間の同期」。コードは 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 は、あなたのデバイスだけが持つ鍵で導出されます。そのためリレーは、ある行がどのタイトルのものかを知ることも、デバイスに気づかれずに行を別の位置に移したり日付を変えたりすることもできません。接続してきたデバイスのネットワークアドレスはリクエストの間だけ保持し、それ以外は何も保持しません。
自分のリレーを運用する。
リレーが保存するのはすべて暗号文なので、自分でホストしても変わるのはデータを保管する人であって、読める人ではありません。
リレーを起動
Lumen はアプリと一緒に
lumen-relay.exeをインストールします。ポート 7345 で待ち受け、データは隣のlumen-relay.dbに保存します。TLS の背後に置く
リバースプロキシで TLS を終端します。ルートは 2 つしかないので、それ以外はすべて 404 を返して構いません。
デバイスの接続先にする
各デバイスで「設定」→「デバイス間の同期」→「詳細設定」→「リレーのアドレス」。リセットすると内蔵のリレーに戻ります。
| 組み込みの上限 | |
|---|---|
| リクエスト本文 | 4 MiB |
| リクエストあたりの行数 | 2,000 |
| 行あたりのペイロード | 256 KiB |
| 世帯あたりの行数 | 50,000 |
lumen-relay.exe --port 7345sync.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 run -d --name lumen-relay -p 7345:7345 \
-v lumen-relay-data:/data \
elduinar/lumen-self-host-relaycurl https://sync.example.com/v1/health