HN 표시: Agt00 – 이메일 허용 목록과 공유하는 로컬 호스트
hackernews
|
|
📦 오픈소스
#이메일인증
#접근제어
#localhost
#show hn
#개발도구
#공유
#보안
#취약점/보안
원문 출처: hackernews · Genesis Park에서 요약 및 분석
요약
'agt00'은 개발자가 로컬호스트(localhost) 환경에서 구동 중이거나 배포된 앱을 특정 이메일 주소를 등록한 사용자에게만 안전하게 공유할 수 있게 해주는 리버스 프록시 도구입니다. 사용자는 명령어 한 번으로 퍼블릭 터널을 열고 접속 URL을 생성할 수 있으며, 접속자는 이메일 인증(매직 링크)을 거쳐야만 앱에 접근할 수 있어 링크 무단 전달을 원천적으로 차단합니다. 앱의 코드를 전혀 수정할 필요가 없으며, 무료 이메일 발송 서비스인 Resend API 키와 Cloudflared만 설치하면 됩니다. 초대, 권한 취소, 접속 기록 조회 등의 관리가 간편한 명령어로 처리되며 모든 세션 데이터는 외부 DB 대신 로컬 SQLite 파일에 저장됩니다.
본문
Let specific people see your app with a single command - whether it's running on localhost or deployed somewhere. You're hacking on something at localhost:3000 . Or maybe you've deployed a staging build. You want to show it to 2-3 people. agt00 lets you share a local app with specific email addresses. If you're not on the list, you can't access it. Forwarding the link won't work. agt00 start --origin http://localhost:3000 --emails [email protected] --tunnel This spins up a proxy in front of your app, opens a public tunnel, and gives you a URL to share. When someone opens it, they enter their email, get a magic link, click it, and they're through to your app. If their email isn't on the list, nothing happens. Your terminal shows: ┌─────────────────────────────────────────┐ │ agt00 is running │ └─────────────────────────────────────────┘ protecting: http://localhost:3000 ┌─────────────────────────────────────────┐ │ Share this URL with your invitees: │ │ │ │ https://random-words.trycloudflare.com │ │ │ └─────────────────────────────────────────┘ If your app is already deployed somewhere, skip --tunnel and point agt00 at the URL directly. You only need: a Resend API key (free, takes 60 seconds) for sending magic link emails, and cloudflared for tunnels. brew install cloudflared Then: RESEND_API_KEY=re_xxxxx npx agt00 start \ --origin http://localhost:3000 \ --emails [email protected],[email protected] \ --tunnel Resend's free tier only delivers to the email you signed up with. To send to anyone, verify a domain in your dashboard. Takes 2 minutes. # Share a local app agt00 start --origin http://localhost:3000 --emails --tunnel # Protect a deployed app agt00 start --origin https://my-app.fly.dev --emails # Add someone later agt00 invite [email protected] # Kick someone out (instant) agt00 revoke [email protected] # Who's invited agt00 list # Who actually showed up agt00 log agt00 is a reverse proxy. It sits between the visitor and your app, checks for a valid session cookie, and either lets the request through or shows a login page. Your app doesn't know agt00 exists — no code changes, no SDK, no middleware. Magic links are bound to the browser that requested them. If someone forwards a magic link, it won't work in a different browser. Sessions, invites, and access logs live in a local SQLite file. No external database. | Variable | Required | Description | |---|---|---| RESEND_API_KEY | Yes | From resend.com | RESEND_FROM | No | Sender address (default: agt00 ) | MIT
Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.
공유