3. Run the installer

sudo ./install.sh

Roughly what happens in the ~3 minutes it runs:

Step What it's doing
Preflight Sanity-checks OS / kernel / CPU / mem / disk / docker / systemd / network. Refuses to proceed if something's wrong; add QT_SKIP_PREFLIGHT=1 to force.
Upstream controller Installs the pinned controller drop (VPP, controller, vpp-bridge).
VPP CPU config Patches /etc/vpp/startup.conf — preserves your corelist-workers if the cores exist; otherwise stamps a single-worker boot-safe minimum.
bng-deploy shim Installs the Flask webui + gunicorn on port 8443. Drops in a systemd override that raises gunicorn --timeout to 180s so long-running API calls (subscriber onboards, snapshot restores) don't get killed at gunicorn's 30s default.
Bootstrap admin key + first-run token Mints a one-time admin API key + first-run setup wizard token.
Healthcheck Confirms the controller reports status=ok with vpp.connected=true.
Banner Prints the admin key + the first-run URL.

At the end you'll see something like:

================================================================
  QuantumTouch BNG installed (quantumtouch-installer 1.2.0-62)
================================================================

  Web UI:            https://192.168.86.33:8443/
  Controller API:    https://localhost:3000/v1/bng/health
  API reference:     https://localhost:3000/redoc.html

  ------------------------------------------------------------
   BOOTSTRAP ADMIN KEY (shown ONCE — copy this now):

       quantum_8f232944a8cd2317f9cf270b5b857886

   Use for API calls until you mint a per-operator key:
     curl -H 'Authorization: Bearer quantum_...' 
          https://localhost:3000/v1/bng/health
  ------------------------------------------------------------

  ------------------------------------------------------------
   FIRST-RUN SETUP — open in a browser now:

       https://192.168.86.33:8443/bng/setup-wizard?token=bs_...
  ------------------------------------------------------------

Copy the admin key and the setup URL now. The admin key is shown once and never printed again — losing it means recovering via sudo /opt/bng-deploy/bin/reset-admin.sh. The setup token can be recovered via sudo /opt/bng-deploy/bin/show-bootstrap-token.sh while no admin exists.