작동 원리
Yundera는 내 맨신의 로컬 앱 런타임과 앱을 어디서든 접속 가능하게 만드는 메시 네트워크(NSL.SH)를 결합합니다.
두 개의 플레인
시스템은 두 개의 독립된 계층으로 나넌니다:
컨트롤 플레인 — 네이밍과 검증
누군가 app.yourname.nsl.sh를 방문하면:
- DNS가 도메인을 NSL.SH 네트워크로 해석합니다.
- mesh-router 백엔드가 암호화 서명(libp2p)으로 요청을 검증합니다.
- 요청이 PCS로 라우팅되고, 로컬 mesh-router가 어떤 앱 컨테이너가 처리해야 하는지 해석합니다.
이 컨트롤 플레인은 항상 NSL.SH 인프라를 경유합니다 — 제로 설정으로 자동 도메인과 TLS를 제공하는 원리입니다.
데이터 플레인 — 앱 트래픽
앱으로의 실제 트래픽(데이터 플레인)은 두 경로 중 하나를 취합니다:
| 네트워크 환경 | 트래픽 경로 | 종단간 암호화? |
|---|---|---|
| 직접 접근 가능 (공개 IP, 포트 개방) | PCS로 직접 전달 | 예 — 중간에서 복호화하는 것 없음 |
| CGNAT 환경 (공개 IP 없음, 포트 포워딩 없음) | NSL.SH를 통한 암호화된 WireGuard 터널 | 전송 중 암호화; 터널 엔드포인트가 트래픽 확인 가능 |
두 경우 모두, 저장된 데이터는 항상 내 맨신에 남습니다.
앱을 설치하면 일어나는 일
- 대시보드에서 "설치"를 클릭합니다.
- PCS가 Docker 이미지를 풀하고 컨테이너를 생성합니다.
- 도메인이 자동 할당됩니다:
{appname}-{yourname}.nsl.sh. - TLS 인증서가 프로비저닝됩니다.
- 앱이 AppShield(SSO 사이드카)를 사용하면, PCS 인증 시스템에 등록되어 자동 로그인됩니다.
- 앱이 라이브로 동작하며 어디서든 접속 가능합니다.
DNS 레코드 생성 필요 없음. 인증서 관리 필요 없음. 포트 포워딩 규칙 설정 필요 없음.
도메인 형태
모든 Yundera 도메인은 다음 패턴을 따릅니다:
{서브도메인}.{사용자-도메인}.{서버-도메인}
예시: immich.john.nsl.sh — immich은 앱, john은 사용자, nsl.sh는 서버 도메인.
도메인, TLS, 라우팅의 작동 방식에 대해서는 도메인 & 라우팅을 참조하세요.