Portless
포트 번호를 이름 기반 .localhost URL로 대체하는 도구
About
- 로컬 개발시 포트 충돌 및 몇번 포트를 썼는지 기억해야 하는 고통을 해결해주는 Vercel Labs의 오픈소스 유틸
- 각 개발 서버에 고유한 앱.localhost 서브도메인을 부여해, 사람과 AI 에이전트 모두가 인식 가능한 URL 체계 제공
- next dev 로 실행하면 http://localhost:3000 이어서 3000을 기억해야 하지만
- portless myapp next dev 실행 시 http://myapp.localhost:1355 형태로 접근 가능
- portless api.myapp pnpm start 같이 실행하면 http://api.myapp.localhost:1355 로 서브 도메인 접근도 지원
- 프록시 기반 구조로 동작하며, portless proxy가 중앙에서 요청을 라우팅
- 앱 실행 시 자동으로 프록시가 시작되고, 각 앱은 임의의 포트(4000–4999)에 할당
- 대부분의 프레임워크(Next.js, Express, Nuxt 등)는 PORT 환경변수를 자동 인식
- Vite, Astro 등 일부 프레임워크에는 자동 플래그 주입 기능으로 호환성 확보
- 자체 인증서 생성 및 시스템 신뢰 저장소 등록 자동화
- --cert, --key 옵션으로 사용자 지정 인증서도 적용 가능
- portless <name> <cmd> : 지정 이름으로 앱 실행
- portless list : 활성 라우트 목록 표시
- portless proxy start/stop : 프록시 제어
- PORTLESS=0 환경변수로 프록시 우회 실행 가능
- 일반 사용자 모드에서는 ~/.portless, 루트 모드에서는 /tmp/portless 사용
- PORTLESS_STATE_DIR로 경로 재정의 가능
- 잘못된 설정 시 508 Loop Detected 응답으로 문제 안내
See also
- Tunneling protocol
- pgrok - Poor man's ngrok
- Piko - Ngrok의 오픈소스 대체제
- Portr - 소규모 팀을 위한 ngrok 대체제 오픈소스
- FRP
- cloudflared
- Octelium - 오픈 소스 Teleport, Cloudflare, Tailscale, Ngrok 대체제
- localias - 로컬 개발 서버를 위한 커스텀 로컬 도메인 엘리아스
- Ngrok