코드 하나로 기기를 연결해요.
라이브러리, 진행 상황, 설정이 모든 화면으로 따라와요. 계정은 없고, 읽을 수 있는 형태로 기기를 떠나는 것은 아무것도 없어요. 모든 것이 전송 전에 암호화돼요.
다섯 자씩 네 묶음, 모두 스무 자. 설정은 이게 전부예요.
첫 기기에서 만들고, 다른 기기에서 입력해요.
유일한 비밀 값이며, 절대 기기를 떠나지 않아요.
동기화 켜기
설정 → 기기 간 동기화. 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를 종료하세요. 경로는 두 개뿐이므로 나머지는 모두 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