The concept would be very simple to build. I might start a github project.
- Global daemon to register apps with. Apps could be installed system wide or per use.
Think plopping a zip/tar/ or directory structure in something like /usr/local/webap.d/(namespace) -- might be abetter directory. Then a manifest file that describes some things about the service, such as how to start the API service, and the default entry point (index.html).
- The global service is responsible for bringing apps on line by way of instance activation on say visiting a name space, or just keep them running.
- Services once launched pick random port from range to bind to and system service acts as a reverse proxy and common auth for validating the local user. Maybe even ensure each of the API services are run per user and jailed to the home directory
IDK, just thinking off the top of my head, I have written bits and pieces of this for various work projects, but never glued the idea into one single system.
You have it scan a directory structure and auto generate a path that you can use in a browser, any browser, to view your newly install app.
You can do this with APIs too so you can have internal tools with APIs via a Node server that do all kinds of things.
Some simple port forwarding rules (ymmv) make this available to your LAN or to the WWW. Add a DNS layer on top and you have something really cool.
I do this for all kinds of stuff, mostly PWAs, but it lets me have my own notes, todo, systems management and more.
So if the rsync app bound to 5392, it would report back to the main service so. And it would ensure all (or some subset of request) to rsync.localhost were reverse proxied back to localhost:5392.
For the most part when I say some request I mean most if not all, but it might be nice to have a system level rsync.localhost/.info uri that would give system level information about the app.
Is there something that does this already, by any chance? (I might not have come across that!)