포트 포워딩이나 VPN 없이 아웃바운드 연결로 Alma 휴대폰 앱에서 Alma 데스크톱 앱을 제어할 수 있게 해주는 셀프 호스팅 릴레이입니다.
nanami-0713/relay-kit
Cloudflare Workers에 배포할 수 있는 셀프 호스팅 가능한 종단 간 암호화 릴레이로, 휴대폰에서 로컬 데스크톱 포트에 노출 없이 접속할 수 있습니다.
- 스타
- 193
- 포크
- 22
- 열린 이슈
- 0
- 마지막 커밋
- 5일 전
어떤 프로젝트인가요?
relay-kit은 휴대폰 같은 원격 클라이언트와 데스크톱에서 실행 중인 서비스 사이에 위치하는 릴레이 서버입니다. 릴레이는 Durable Objects를 사용하는 Cloudflare Workers에서 실행되며 암호문과 라우팅 토큰만 전달하므로, 복호화는 양쪽 끝에서만 이루어집니다. 페어링에는 256비트 코드 하나를 사용하며, 이 코드로 라우팅 토큰과 PAKE salt도 생성합니다. 따라서 코드가 없으면 릴레이는 핸드셰이크를 완료할 수 없습니다.
저장소에는 릴레이 자체와 로컬 HTTP 또는 WebSocket 포트를 프록시하는 참조 에이전트, 그리고 터널을 통해 fetch와 WebSocket을 제공하는 참조 클라이언트가 포함되어 있습니다. Node 기반 릴레이 픽스처는 로컬 테스트나 단일 프로세스 셀프 호스팅을 위해 동일한 프로토콜을 구현합니다. 프로토콜은 PROTOCOL.md에 명세되어 있으며, 핵심 패키지는 WebCrypto만 사용하므로 Node 18+, 브라우저, Capacitor WebView에서 실행됩니다.
이 프로젝트는 Alma AI assistant의 릴레이 프로토콜에서 파생되었으며 Alma의 공식 클라이언트와는 wire 호환되지 않습니다. 기본적으로 속도 제한이 없고, 핸드셰이크도 정식 보안 감사를 받지 않았습니다.
핵심 기능
- 01단일 wrangler 명령으로 릴레이를 Cloudflare Workers에 배포합니다.
- 02릴레이는 암호문과 라우팅 토큰만 처리하며, 복호화는 엔드포인트에서 이루어집니다.
- 03페어링 코드 하나로 라우팅 토큰과 PAKE salt를 모두 생성합니다.
- 04참조 에이전트가 로컬 HTTP 및 WebSocket 포트를 프록시합니다.
- 05핵심 암호화 패키지는 WebCrypto만 사용하며 Node 18+와 브라우저에서 실행됩니다.
- 06로컬 테스트나 셀프 호스팅을 위한 Node 릴레이 픽스처가 포함되어 있습니다.
활용 사례
- 다른 네트워크에 있는 휴대폰에서 로컬 개발 서버나 데스크톱 웹 대시보드에 접속하기.
- 자신의 Cloudflare 계정에서 비공개 암호화 터널을 셀프 호스팅하기.
- 문서화된 relay-e2e/v1 프로토콜을 기반으로 커스텀 에이전트나 클라이언트 구축하기.
빠른 시작
- 1
종속성 설치
npm install - 2
Cloudflare 계정에 로그인(최초 1회)
npx wrangler login - 3
relay server 디렉터리로 이동
cd workers/relay - 4
relay를 Cloudflare Workers에 배포
npx wrangler deploy
사용 전 알아둘 점
- 핸드셰이크는 자체 제작한 PAKE 스타일 방식으로, 공식적인 검증이나 감사를 받지 않았습니다.
- 이 프로토콜은 기본 상태에서 공식 Alma 클라이언트와 와이어 호환되지 않습니다.
- workers.dev 도메인은 중국 본토의 여러 네트워크에서 차단되므로 사용자 지정 도메인이나 프록시가 필요할 수 있습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- relay-kit은(는) 무엇인가요?
- Cloudflare Workers에 배포할 수 있는 셀프 호스팅 가능한 종단 간 암호화 릴레이로, 휴대폰에서 로컬 데스크톱 포트에 노출 없이 접속할 수 있습니다. relay-kit은 휴대폰 같은 원격 클라이언트와 데스크톱에서 실행 중인 서비스 사이에 위치하는 릴레이 서버입니다. 릴레이는 Durable Objects를 사용하는 Cloudflare Workers에서 실행되며 암호문과 라우팅 토큰만 전달하므로, 복호화는 양쪽 끝에서만 이루어집니다. 페어링에는 256비트 코드 하나를 사용하며, 이 코드로 라우팅 토큰과 PAKE salt도 생성합니다. 따라서 코드가 없으면 릴레이는 핸드셰이크를 완료할 수 없습니다.
- relay-kit은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- relay-kit은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- relay-kit은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. relay-kit의 마지막 커밋은 2026년 11월 1일입니다.
- relay-kit은(는) 어디에 사용할 수 있나요?
- 다른 네트워크에 있는 휴대폰에서 로컬 개발 서버나 데스크톱 웹 대시보드에 접속하기. 자신의 Cloudflare 계정에서 비공개 암호화 터널을 셀프 호스팅하기. 문서화된 relay-e2e/v1 프로토콜을 기반으로 커스텀 에이전트나 클라이언트 구축하기.
- relay-kit는 어떻게 설치하나요?
- 종속성 설치: npm install Cloudflare 계정에 로그인(최초 1회): npx wrangler login relay server 디렉터리로 이동: cd workers/relay relay를 Cloudflare Workers에 배포: npx wrangler deploy
- relay-kit은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/nanami-0713/relay-kit
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
로컬 개발 서버에 공개 HTTPS URL을 제공하고 WebSocket과 핫 리로드도 전달하는 무료 CLI로, 계정이 필요 없습니다.
공유 코드 문구를 이용한 종단 간 암호화와 릴레이 대체 연결을 지원하는 P2P 파일·폴더 전송 CLI 도구입니다.
화면 공유와 종단 간 암호화를 지원하는 셀프 호스팅 오픈소스 WebRTC 1:1 영상 통화 플랫폼입니다.
각 저장소를 Durable Object로 운영하는 git 서버로, Cloudflare Workers 또는 celld에서 자체 호스팅할 수 있습니다.
자체 머신에서 Cloudflare Workers 애플리케이션과 Durable Objects를 실행하고, 상태를 S3, GCS 또는 Azure 버킷에 저장하는 셀프 호스팅 데몬입니다.