Tailscale로 휴대폰에서 Happier에 접속하는 방법: 포트 개방 없이 HTTPS로
포트를 열거나 LAN IP에 의존하지 않고, 휴대폰에서 안정적인 HTTPS 링크로 Happier에 접속하는 설정.
- CLI
- 0.2.17
- 프리뷰 ref
- a2c45c8
셀프 호스팅한 Happier 스택에 처음 휴대폰으로 접속하면, 헷갈리는 브라우저 제약에 부딪히는 경우가 많습니다.
http://localhost는 잘 됩니다.
하지만 이런 주소로 바꾸는 순간:
http://192.168.x.x:PORThttp://100.x.y.z:PORT(Tailscale IP)
일부 브라우저는 더 이상 이를 보안 컨텍스트로 취급하지 않습니다.
Happier는 보안 컨텍스트가 필요한 브라우저 기능(WebCrypto)을 쓰기 때문에, "열리긴 하는데 뭔가 이상하다"는 실패가 실제로 일어납니다.
안정적으로 동작하는 설정은 Tailscale Serve입니다. tailnet 안에서만 접근할 수 있는 HTTPS *.ts.net URL을 줍니다.
요약
- 컴퓨터와 휴대폰에 Tailscale을 설치합니다.
- Happier 스택에서 Serve를 켭니다(
hstack tailscale enable). - 생성된
https://*.ts.netURL을 휴대폰에서 엽니다.
일반적인 방법과 트레이드오프
-
LAN IP + 포트: 쉽지만 HTTPS가 아니고, 보안 컨텍스트 요구 사항을 깨뜨릴 수 있습니다.
-
Tailscale IP + 포트: 기본적으로 여전히 HTTPS가 아니라서 같은 문제를 겪습니다.
-
Tailscale Serve: 인터넷에 포트를 열지 않고도 실제로 필요한 HTTPS URL을 줍니다. 트레이드오프: 각 기기에 Tailscale을 설치하고 로그인해야 합니다.
Happier가 처음이라면(무엇이고 어디서 받는지)
Happier는 Claude Code, Codex, OpenCode 같은 AI 코딩 에이전트를 위한 오픈 소스 컴패니언 앱(모바일 / 웹 / 데스크톱)입니다.
여기서의 워크플로는 신뢰하는 머신에서 Happier를 실행하고, 안정적인 HTTPS 링크로 휴대폰에서 접속하는 것입니다.
설정하기:
- 휴대폰에서 Happier 사용하는 방법
- GitHub: https://github.com/happier-dev/happier
- 설치 / 다운로드: https://github.com/happier-dev/happier#how-it-works
- Discord(커뮤니티와 지원): https://discord.gg/W6Pb8KuHfg
여기서 HTTPS가 중요한 이유(보안 컨텍스트 제약)
브라우저는 http://localhost를 안전하다고 보지만, 임의의 http://<ip>:<port>는 그렇게 보지 않습니다.
그래서 원격 접속에는 HTTPS가 필요합니다.
Tailscale Serve는 이를 손쉽게 해결합니다. tailnet 안에서만 쓸 수 있는 HTTPS URL을 만들어 줍니다.
단계별 방법: Happier에서 Tailscale Serve 켜기
Happier를 실행하는 머신에서:
- Tailscale을 설치하고 로그인합니다.
- 다음을 실행합니다.
hstack tailscale enable
hstack tailscale url- URL을 복사합니다.
휴대폰에서:
- Tailscale을 설치하고 같은 tailnet에 로그인합니다.
- Safari / Chrome에서 URL을 엽니다.
팁: iOS Safari에서 "홈 화면에 추가"를 하면 앱처럼 쓸 수 있습니다.
자동화(선택)
Serve가 이미 설정되어 있다면 hstack start가 대표 링크와 공유 링크에 https://*.ts.net URL을 우선 사용할 수 있습니다.
셀프 호스팅 서버에서는 HAPPIER_PUBLIC_SERVER_URL을 설정해 두면 딥 링크와 QR 코드가 HTTPS URL을 가리키게 됩니다.
문제 해결
증상: 페이지는 열리는데 동작이 이상하다(암호화 / 인증 문제)
가능한 원인:
- HTTPS가 아니라 LAN이나 Tailscale IP로 일반 HTTP를 쓰고 있다
해결:
- Tailscale Serve로 바꾸고
https://*.ts.netURL을 쓴다