Running Node.js apps as background services in Windows kiosk mode - looking for best practices

We’re working on a Windows-based kiosk setup. There are two user accounts:

  1. An administrator account where we have two Node.js applications installed.
  2. A kiosk user account that the system automatically logs into at startup.

One Node.js app deals with HTTP requests, WebSockets, and serial port communication. The other exposes an HTTP server on port 3000 and also uses WebSockets.

Right now, we’re using PM2 to manage both apps, but they only autostart after logging into the admin account. The current process requires someone to log in to admin, wait for PM2 to boot up, then switch back to the kiosk account.

We’d like these apps to start automatically on boot (no user login required), and stay running in the background, accessible by the kiosk account or remotely.

Has anyone here implemented something similar? Would you recommend running these apps as Windows services (maybe via NSSM)? Is there a cleaner solution involving Docker or WSL that works reliably on Windows?

Open to suggestions or war stories! Thanks!