Develop, stage and test on-prem or in your private cloud. Dockside is a tool for provisioning lightweight access-controlled IDEs, staging environments and sandboxes - aka 'devtainers' - on local machine, on-premises raw metal or VM, or in the cloud
To implement this in a relatively neat way, I suggest we:
Introduce the concept of a 'redirect-to-https' protocol within the router service definition. In Profile.pm, modify sub new, to add redirect-to-https for http requests matched to the 'ide' router
Modify Reservation.pm, sub mapfile_routers, sub routers and sub lookup_container_uri, to detect and return a data structure representing the redirect (with no 'uri')
Modify Proxy.pm, sub get_server_port, to check for the data structure representing the redirect; on finding it:
returning an error code indicating nginx should redirect from HTTP to HTTPS for the current URL (if this is possible)
returning an error code indicating nginx should call the app and allow the app to redirect from HTTP to HTTPS (potentially allowing the app to do this for all HTTP requests, including those for the UI)
Sometimes when reopening addresses of devtainers' IDEs, previously navigated to in Chrome, Chrome tries HTTP and one gets an ugly 410 GONE error.
Make Dockside handle HTTP requests for IDEs by responding with a redirect to the same URL on HTTPS.