同期

1 つのペアリングコードで、ライブラリ、視聴の続き、設定を同期します。データはあなたの端末で暗号化されます。アカウントは不要です。

ホスト型同期は 14 日間無料、その後は 1 世帯あたり 19 ユーロ 一度きりです。または自分のサーバーを無料で動かせます。

ペアリングコード(例)

7Q4MXK2H9CV3ZDTA8N5R

5 文字ずつ 4 組、合わせて 20 文字。設定はこれだけです。

ペアリングコード

1 つのコードを最初の端末で作り、他の端末に入力します。秘密はこれだけで、端末の外に出ることはありません。

  • 同期を有効にすると Lumen がコードを作ります。他の端末に入力すれば、つながります。

  • 打ち間違いは許容されます。I と L は 1、O は 0 として読み、区切り文字は無視されます。

  • コードは伏せて表示され、隣に「表示」と「コピー」が並びます。表示されるのは同期が有効な間だけです。

  • 同期を無効にすると、その端末はコードを忘れます。もう一度つなぐには再入力してください。

同期されるもの

2 台目を 1 台目のように感じさせる、4 つのもの。

  • ライブラリ: 保存したタイトル、続きから視聴、視聴済みの記録。

  • 視聴の続き: 各エピソードや映画のどこまで見たか。

  • アドオン: どれをインストールし、どう設定しているか。

  • プレーヤー設定: 字幕の言語、音声プリセット、再生の選択。

端末に残るもの

ペアリングコード、ウィンドウの大きさと位置、診断ログ、そしてオフライン視聴用にダウンロードしたものすべて。

リレーサーバーから見えるもの

各端末はコードから鍵を導き、送る前にすべての行を暗号化します。リレーサーバーは受け取ったものを保存するだけで、中身は一切読みません。

外に出ていく 1 行の視聴記録

あなたの端末では

entity
watch
key
tt1254207:1:3
value
{"positionSecs":2537,…}

リレーサーバーが保存するもの

space
9f3c…7b21
entity
x
row
c81a…04ef
payload
base64 ciphertext
updated
1788462601007

領域の識別子も行の識別子も、あなたの端末しか持たない鍵から導かれます。そのためリレーサーバーは、その行がどの作品のものか知ることも、別の場所へ移すことも、端末に気づかれずに日付を変えることもできません。接続してきた端末のネットワークアドレスは、リクエストの間だけ保持され、それ以上は残りません。

当方が運用するリレーサーバーは sync.lumen.movie で動いています。別の場所を指定するまで、端末はここを使います。

同期の方法を選ぶ

当方のホスト型サーバーを使うか、自分のものを動かすか。どちらも同じ暗号化と同じペアリングコードを使います。

  • 当方のリレーサーバー(sync.lumen.movie): 1 世帯あたり 14 日間無料、その後は Lumen Pass、その世帯につき 19 ユーロ 一度きり。

  • 自分のリレーサーバー: 無料、ずっと、Pass も上限もなし。プログラムはアプリと並べてインストールされます。

  • どちらでも同じです。暗号化も、ペアリングコードも、同期される内容も変わりません。

  • お試し期間が終わると、止まるのは同期だけです。端末内の変更は保持され、Pass を有効にすればそのまま送られます。

サーバーは Lumen にお任せください。

運用も保守も必要なリレーサーバーを持たずに、プライベート同期の便利さをそのまま。1 つの Pass が世帯内のすべての個人の端末をカバーします。19 ユーロ、一度きりです。

Lumen Pass を見る

自分のリレーサーバーを動かす

リレーサーバーが保存するものはすべて暗号化されています。つまり自分で動かすと、誰がバイト列を持つかは変わりますが、誰が読めるかは変わりません。

  1. リレーサーバーを起動する

    Lumen はアプリと並べて lumen-relay.exe を %LOCALAPPDATA%\Programs\Lumen にインストールします。端末から届くマシンで実行してください。ポート 7345 で待ち受け、データは隣の lumen-relay.db に保持します。

    lumen-relay.exe --port 7345
  2. TLS の内側に置く

    リバースプロキシで TLS を終端します。経路は 2 つしかないので、それ以外はすべて 404 を返して構いません。当方が使っている Caddy の設定はこちらです:

    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 }
    }
  3. 端末の向き先を変える

    各端末で: 設定、デバイス間の同期、詳細設定、リレーのアドレス。自分のサーバーの https アドレスを入力します。リセットすると内蔵のものに戻ります。

    curl https://sync.example.com/v1/health

    health の経路は ok を返します。

Docker

Linux 向けの出来合いのイメージを公開しました。amd64 と arm64 の両方に対応しているので、Raspberry Pi や NAS でもサーバーと同じように動きます。中身は空のベースイメージに置いた静的バイナリひとつだけで、ダウンロードは約 3 MB、パッチを当て続けるべき OS は入っていません。

docker run -d --name lumen-relay -p 7345:7345 \
  -v lumen-relay-data:/data \
  elduinar/lumen-self-host-relay

リレーは平文の HTTP を話します。自分のネットワークの外から届く前に、上と同じ TLS プロキシの後ろに置いてください。データは lumen-relay-data ボリュームに残ります。

組み込みの上限

リクエスト本文4 MiB
1 リクエストあたりの行数2000
1 行の内容256 KiB
1 領域あたりの行数50 000

その領域にすでにある行の更新は常に通ります。領域ごとの上限に数えられるのは新しい行だけです。