A browser fetches some HTML via HTTP/HTTPS or a file, which may result in fetching a bunch of other resources, including some JavaScript, and then it runs it in a browser environment. I would describe this as a mechanism for delivering code to the browser.
Does a similar web-based delivery mechanism exist for Node.js apps? Is there a way to get everything that a node.js app needs to run via HTTP(S) and run in some kind of "node" environment? Sort of like a headless browser, but no HTML?
I'm asking this in the context of updating node.js apps. I really like how a server is in charge of the code that the browser is running. I think the same thing would be great for a certain class of node.js app. It would be great if a node.js could auto-update itself in a straightforward and secure way. This was the first thing that came to mind.
After thinking about this in detail, it seems necessary to containerize the application and use a mechanism like Docker to deliver the application in its entirety to the machine that will run the app. There just needs to be some supporting mechanism for ensuring that the app is always up to date. I know there are docker-compose and kubernetes, and things like Watchtower, but is this really the best way for just keeping the application up to date? During development it seems like the mechanism is copying code (like through git) and installing dependent packages (like via NPM). But this is a very developer-centric workflow. Internally, I guess it makes sense to use docker. But for web-delivery, I think a workflow for deploying a node.js-centric application and keeping it up to date would use some other mechanism. What is that mechanism? If docker is the way, then maybe I just need to refocus my question to find out how to auto-update docker containers. But I'm fairly certain that exposing the docker API directly isn't really a secure option for web-delivery. I also don't even know how node-based apps are typically delivered. The few that I have actually get installed via the OS's installer mechanism (Like an .msi on Windows) - and that seems very native. Surely there must be a more web-centric approach.
So, how should a Node application auto-update itself (or receive a push update) via the web? (like a browser-based app does)