Show HN: Access a browser running on a GitHub Action runner with free ngrok
<i>It&#x27;s worth noting the following method will work for any web application, it&#x27;s just surprising to me that it worked with one which uses WebSockets, WebRTC and has a significant back-end component!</i><p>I&#x27;ve recently made an exciting breakthrough with my project, BrowserBox, a remote browser application that uses WebSockets and WebRTC. Amazingly, I was able to run and test it successfully in the context of a GitHub Action, even browsing the web as normal! If you&#x27;re curious about running your own remote browser for testing purposes, here&#x27;s how you can do it too:<p>How can you do this yourself?<p>1. Fork this repo<p>https:&#x2F;&#x2F;github.com&#x2F;dosyago&#x2F;BrowserBoxPro&#x2F;fork<p>2. Add your ngrok auth token to your fork&#x27;s repository secrets under NGROK_AUTH_TOKEN (you need to sign up for an ngrok free account if you don&#x27;t have one)<p>3. Go to your fork&#x27;s Actions page and run the CI action.<p>4. Wait a couple minutes for the setup to run and click on the URL produced by the &quot;Print ngrok URL&quot; step in the running action&#x27;s logs.<p>5. Play around with the remote browser! Just click on the big + to create a new tab and enter a search query or an address in the address bar and you&#x27;re away!<p>IMPORTANT! <i>I&#x27;m not sure if this violates the GitHub terms doing this (it may do! Any GitHub employees please email me at cris@dosyago.com and I will remove this Action if it does!), but it&#x27;s logical that just using this to browse the web would be wasting resources from the Actions runners intended purpose, so don&#x27;t overdo it! To try to help with this I&#x27;ve set the Action to only run the browser for 5 minutes.</i><p>If anyone wants to port this to GitLab or another CI platform, we would very much welcome your contribution!<p>Anyway, I was really happy and surprised to discover that we can use the generous free compute from Microsoft and GitHub, and the free tunnel from ngrok, to really do some useful things, and you can check up on those and integration test using ngrok and GitHub Actions!