All you need is "just" a web server with script interpreter support.
For example lighttpd with node.js if you want to write your script in js.
(Substitute lighttpd with your favourite web server)
More traditionally lighttpd with php would be used.
I am pretty sure php is much smaller than node.js and lighttpd is hard enough for exposure to raw Internet and also has a small memory footprint.
Your choice, depending on the resources of the router you are running on.
Require approx. 5.5 MB size for 5 package(s) to install."
You definitely do NOT need node.js to run the shell script. Also, you don't need the non-standard web-server either, what you're talking about can be accomplished with the uhttpd which is default server.
Thankyou @stangri that sounds much better. I have a second site running on uhttpd configured by luci-app-uhttpd and just need a button on there to query another site. The other site goes offline occasionally (most likely maintenance). When it's online it shows a Windows IIS page and offline is Cloudflare so it's a pretty simple thing for me to grep into a shell script.
Could you please provide a simple example of how to call the script?
I'm sure you can adapt the fakeinternet code, just make sure it outputs the proper HTML with the button when called with no parameters and if invoked with a specific parameter (link from the button) it parses the target and outputs the result.
Um yeah idk. I'm not at all familiar with your package or how it even works. My OpenWrt device is not performing any router functions. It operates simply as a static device on the network running mainly uhttdp and rsync backups.
Could you please offer anything further in relation to how I would use this?
What you want to do though is very simple and you already have (most likely) a [b]ash script to do it.
Don't overthink the problem with node.js.
I am pretty sure you can run your ash script as uhttpd/cgi (or at least a version of it).