You’ll need HTTPS to make any of what I’ve listed in my article work, sorry. Good news though—Let’s Encrypt gives free certs and is pretty much the future of this.
Lighthouse / the Audits tab is right, you should serve the
start_url, and you’d do that as part of a more complicated Service Worker. But it’s not technically required to be presented with the “install” prompt.