The answer is "it depends". 🙂
va-run is the way to run stand-alone apps, which are usually UI apps. You can run stand-alone server apps with it as well (like you did by va-run main.qml), but they are not hugely useful without a web server that provides a remote interface.
The web server is started by the Engine service that runs in the background. There is a web-based management interface through which you can install, start and stop apps.
The .vapkg file contains a component that in your case is an executable app. You can upload .vapkg files to the service through the web interface or directly from the Builder. Once you install the uploaded packages, the front page automatically shows you all installed apps.
Hope this helps. 🙂