개발자들이 로컬 개발 환경에서 실행 중인 웹 서비스나 디렉토리를 외부 인터넷에 안전하게 노출해야 할 때, ngrok과 같은 터널링 서비스는 필수적인 도구입니다. 하지만 이러한 서비스들은 종종 무작위로 변경되는 서브도메인, 월별 구독료, 세션 제한, 그리고 민감한 데이터를 타사 인프라를 통해 전송해야 하는 보안 문제 등의 단점을 가지고 있습니다. 이러한 문제들을 해결하기 위해, 사용자가 직접 모든 것을 소유하고 제어할 수 있는 자가 호스팅(self-hosted) 터널링 솔루션 'mygrok'이 등장했습니다.
mygrok은 Go 언어로 작성된 두 개의 바이너리(mygrokd, mygrok)로 구성되며, 가장 저렴한 가상 사설 서버(VPS)에서도 구동 가능합니다. 사용자는 와일드카드 DNS가 설정된 서버에 mygrokd를 실행하고, 노출하고자 하는 로컬 환경에 mygrok 클라이언트를 설치하여 사용합니다. 이를 통해 'jarvis.your-domain.com'과 같이 안정적이고 기억하기 쉬운 고유 도메인 URL을 확보할 수 있으며, Let's Encrypt를 통한 자동 HTTPS 인증서 발급 및 갱신으로 보안 경고 없이 안전한 연결을 제공합니다. 또한, SSH 역 터널링(reverse tunnel) 방식으로는 어려운 IP 기반 접근 규칙, 웹 인증(WebAuthn) 패스키(passkey)를 통한 강력한 사용자 인증 등 세밀한 접근 제어 기능을 웹 UI 또는 CLI를 통해 손쉽게 관리할 수 있습니다.
mygrok은 단순히 로컬 포트를 외부에 노출하는 것을 넘어, 정적 파일 서버 기능('mygrok serve gallery ./photos')과 같은 다양한 활용성을 제공합니다. 특히, 계정 생성이나 무료 티어 제한 없이 모든 인프라를 직접 소유함으로써, 서비스 중단이나 세션 만료 걱정 없이 안정적인 개발 및 테스트 환경을 구축할 수 있다는 점이 큰 장점입니다. 이는 웹훅(webhook) 테스트, 데모 환경 공유, 혹은 내부 서비스 접근 등 다양한 상황에서 개발 생산성을 크게 향상시킬 수 있습니다. mygrok은 기존 터널링 서비스의 단점을 보완하며, 개발자들에게 더 큰 자율성과 통제권을 제공하는 매력적인 대안으로 자리매김할 것으로 보입니다.