Relayium

Relayium을 상시 실행되는 수신 서비스로 운영하기

마지막 업데이트: 2026-07-09

relayium serve --once는 들어오는 전송 하나만 처리하고 종료합니다——가끔 한 번 pull하는 용도로는 충분합니다. 하지만 어떤 기기를 상시 대기하는 수신처로 만들고 싶다면——밤사이 백업이 도착하는 홈 서버, CI가 빌드 산출물을 푸시하는 빌드 머신, 언제든 휴대폰에서 사진을 보낼 수 있는 NAS——매번 손으로 켜는 대신 serve를 계속 켜 두고 싶을 것입니다.

이 가이드는 오래 실행되는 리스너 시작하기, 누구에게 푸시를 허용할지 승인하기, 터미널 앞에 아무도 없는 경우를 위해 피어를 미리 승인해 두기, systemd 아래에서 실행하기, 그리고 sync --delete를 쓰는 보내는 쪽이 삭제를 미러링하도록 허용하는 방법을 다룹니다.

리스너 시작하기

serve는 고정된 TLS 1.3 연결을 통해 데몬 다이렉트 푸시(relayium://host:port)를 대기하고, 받은 내용을 어떤 디렉터리에 기록합니다. 시작하는 데 미리 공유해야 할 것은 없습니다——복사해 둘 핑거프린트도, 등록해 둘 서버도 없습니다:

relayium serve --dir ~/inbox
relayium serve --dir /srv/drop --port 9040   # non-default port
relayium serve --dir ~/inbox --allow-delete  # let a sync --delete sender mirror deletions

누구에게 푸시를 허용할지 승인하기

새로운 피어가 처음 푸시하면, serve가 터미널에서 실행 중일 경우 그 푸시가 어디서 왔는지와 핑거프린트를 보여주고 승인할지 물어봅니다——SSH가 처음 접속하는 호스트에 대해 물어보는 것과 같은 방식입니다:

Incoming push from 203.0.113.7:54021
  fingerprint: 74318e3b…
Accept and remember this peer? [y/N] y

비대화형 환경을 위해 피어를 미리 승인하기

serve가 프롬프트를 띄울 터미널이 없을 때——systemd 서비스, 백그라운드 프로세스, 파이프——는 물어볼 수 없으므로 아직 인식하지 못한 핑거프린트를 모두 거부합니다. 대신 피어를 미리 승인해 두세요. 푸시할 기기에서 relayium id를 실행해 핑거프린트를 출력하고, 받는 쪽에서는 첫 푸시가 도착하기 전에 그것을 추가하세요:

# on the machine that will PUSH: print its fingerprint
relayium id

# on this always-on RECEIVER: authorize it in advance
relayium authorize 74318e3b...

systemd 아래에서 실행하기

재부팅과 충돌을 견디는 서비스로 만들려면 serve를 systemd에 맡기세요. --config-dir을 고정된 경로로 지정해 호스트의 신원과 피어 허용 목록이 재시작 간에도 그대로 유지되게 하세요:

# /etc/systemd/system/relayium-serve.service
[Unit]
Description=Relayium always-on receiver
After=network-online.target

[Service]
ExecStart=/usr/local/bin/relayium serve --dir /srv/drop --port 9031 --config-dir /etc/relayium --allow-delete
Restart=always
User=relayium

[Install]
WantedBy=multi-user.target

sync --delete를 쓰는 보내는 쪽이 삭제를 미러링하도록 허용하기

기본적으로 serve는 파일을 추가하거나 갱신하기만 합니다——보내는 쪽이 sync --delete를 실행해도 새 파일과 변경된 파일은 복사되지만, 요청된 삭제는 건너뛰고 받는 쪽 로그에 경고가 남습니다. 진짜 미러링을 사용하려면 --allow-delete와 함께 serve를 시작하세요. 그러면 보내는 쪽에서 삭제된 파일이 여기서도 삭제됩니다:

relayium serve --dir /srv/mirror --allow-delete

자주 묻는 질문

serve는 기본적으로 어떤 포트를 대기하나요?

9031입니다. 리스너 쪽(serve --port N)과 보내는 쪽의 대상 주소(relayium://host:N) 모두에서 --port로 바꿀 수 있습니다.

모든 푸시를 일일이 손으로 승인해야 하나요?

특정 핑거프린트의 첫 푸시만 승인하면 됩니다. 그것도 serve가 터미널이 연결된 상태로 실행 중일 때만 표시됩니다. 이후에는 기억됩니다. serve를 비대화형(systemd, 파이프)으로 실행하면 프롬프트가 전혀 뜨지 않고 알 수 없는 피어는 거부됩니다——이 경우 relayium authorize로 미리 승인해 두세요.

보내는 쪽이 내 상시 수신기에 있는 파일을 삭제할 수 있나요?

serve를 --allow-delete와 함께 시작했고 보내는 쪽이 sync --delete를 실행하는 경우에만 가능합니다. --allow-delete가 없으면 삭제는 조용히 건너뛰고 나머지는 그대로 전송됩니다.

상시 수신 서비스를 운영하는 것이 무료인가요?

네. relayium serve는 무료이며 자체 호스팅 가능한 CLI의 일부입니다——연결 어느 쪽도 계정이 필요 없고 유료 등급도 없습니다.

serve는 신원과 피어 목록을 어디에 보관하나요?

기본적으로 ~/.config/relayium에 있습니다(id.key/id.crt는 이 호스트의 신원, authorized_fingerprints는 허용 목록). systemd 서비스의 경우 --config-dir을 /etc/relayium 같은 고정된 위치로 지정하세요.

당신이 가진 어떤 기기든 무료 상시 수신기로 만들어 보세요——고정된 TLS 위의 직접 푸시이며, 릴레이는 전혀 개입하지 않습니다.

CLI 받기

계속 읽기