Tailscale로 휴대폰에서 Happier에 접속하는 방법: 포트 개방 없이 HTTPS로

포트를 열거나 LAN IP에 의존하지 않고, 휴대폰에서 안정적인 HTTPS 링크로 Happier에 접속하는 설정.

기준 버전
CLI
0.2.17
프리뷰 ref
a2c45c8

셀프 호스팅한 Happier 스택에 처음 휴대폰으로 접속하면, 헷갈리는 브라우저 제약에 부딪히는 경우가 많습니다.

http://localhost는 잘 됩니다.

하지만 이런 주소로 바꾸는 순간:

  • http://192.168.x.x:PORT
  • http://100.x.y.z:PORT(Tailscale IP)

일부 브라우저는 더 이상 이를 보안 컨텍스트로 취급하지 않습니다.

Happier는 보안 컨텍스트가 필요한 브라우저 기능(WebCrypto)을 쓰기 때문에, "열리긴 하는데 뭔가 이상하다"는 실패가 실제로 일어납니다.

안정적으로 동작하는 설정은 Tailscale Serve입니다. tailnet 안에서만 접근할 수 있는 HTTPS *.ts.net URL을 줍니다.

요약

  1. 컴퓨터와 휴대폰에 Tailscale을 설치합니다.
  2. Happier 스택에서 Serve를 켭니다(hstack tailscale enable).
  3. 생성된 https://*.ts.net URL을 휴대폰에서 엽니다.

일반적인 방법과 트레이드오프

  • LAN IP + 포트: 쉽지만 HTTPS가 아니고, 보안 컨텍스트 요구 사항을 깨뜨릴 수 있습니다.

  • Tailscale IP + 포트: 기본적으로 여전히 HTTPS가 아니라서 같은 문제를 겪습니다.

  • Tailscale Serve: 인터넷에 포트를 열지 않고도 실제로 필요한 HTTPS URL을 줍니다. 트레이드오프: 각 기기에 Tailscale을 설치하고 로그인해야 합니다.

Happier가 처음이라면(무엇이고 어디서 받는지)

Happier는 Claude Code, Codex, OpenCode 같은 AI 코딩 에이전트를 위한 오픈 소스 컴패니언 앱(모바일 / 웹 / 데스크톱)입니다.

여기서의 워크플로는 신뢰하는 머신에서 Happier를 실행하고, 안정적인 HTTPS 링크로 휴대폰에서 접속하는 것입니다.

설정하기:

여기서 HTTPS가 중요한 이유(보안 컨텍스트 제약)

브라우저는 http://localhost를 안전하다고 보지만, 임의의 http://<ip>:<port>는 그렇게 보지 않습니다.

그래서 원격 접속에는 HTTPS가 필요합니다.

Tailscale Serve는 이를 손쉽게 해결합니다. tailnet 안에서만 쓸 수 있는 HTTPS URL을 만들어 줍니다.

단계별 방법: Happier에서 Tailscale Serve 켜기

Happier를 실행하는 머신에서:

  1. Tailscale을 설치하고 로그인합니다.
  2. 다음을 실행합니다.
hstack tailscale enable
hstack tailscale url
  1. URL을 복사합니다.

휴대폰에서:

  1. Tailscale을 설치하고 같은 tailnet에 로그인합니다.
  2. 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.net URL을 쓴다

관련 가이드

mobileself-hosttailscaleremote-access
마지막 업데이트: 2026-10-26