If it wasn't possible, then how was Forge deployed?!
GitHub allows you to set up webhooks that can push updates to a production server with a repo on it. Host your app in a private repository and deploy it that way. VPS's are way too cheap nowadays to ever consider shared hosting.
This process seems weird to me; why not just rename public to www and update the public path? If you've got access to create the project directory at the same level as www anyway, you're better off not messing with the structure in a way that involves copying files around the place. If nothing else, it's much easier.
The bigger issue of deploying without forge or onto a shared host, is getting your dependencies installed, particularly if you don't have shell access (and for whatever reason, finding another host is not an option).