I was working with a startup at one point, and they had an awesome setup where they had a headless server that spun up and launched everything without the need for a login or GUI. Then you could VNC into one of server VMs that one server spun up automatically.
I want something similar to this, but I don't need the VMs. Ideal setup would be a headless server that spins up my applications automatically and then I can have users VNC into it via an SSH tunnel and get a GUI on their remote machines to be able to see and use these applications. If I need to use a VM or some other container application, that wouldn't be the end of the world... but I'm trying to keep the server as simple as possible. And to me it seems I should be able to force the server to remain headless until a user remotely logs into it, but I don't know how to do this and I can't find anything useful on Google.
Right now, I can't find a way to setup VNC without the server going into "GUI-mode" and then it won't let me SSH into it until I log into the server locally, so it can launch the startup programs, and this is unacceptable, I can't be logging into the server locally every time the server reboots or loses power. I really don't like the idea of the auto-login either, as I don't plan on keeping the machine at home, and don't want the server logged in when it's "out and about". Any help, links, articles, thoughts, and opinions are greatly appreciated thanks!