Skip to main content

Linux (Ubuntu) Development + NPM Usage

Goals

  • One command to bootstrap Linux dev
  • npm install/build works without pnpm
  • Avoid SEA on Linux by default (Node CLI path is more reliable)

Quickstart (Ubuntu 24.04)

What the bootstrap does

  • Installs system deps: curl, ca-certificates, xz-utils, python3, make, g++, git
  • Installs libpam0g-dev for PAM auth native module
  • Installs checksum-verified Node.js 24.16.0 if missing or too old
  • Installs rustup and the Rust 1.97.0 toolchain pinned by native/vt-fwd/rust-toolchain.toml

SEA on Linux (disabled by default)

SEA builds are skipped on Linux unless explicitly enabled. Enable if you want to test SEA (not recommended on Linux):

PAM Authentication (optional)

  • authenticate-pam is an optional dependency.
  • If libpam0g-dev is present during install, PAM auth will be built and used.
  • If it’s missing, VibeTunnel still runs; auth falls back to env/SSH methods.
To force PAM after installing deps:

npmjs (global install)

Linux npm package runs the Node CLI wrapper (no SEA). Systemd support is available:

Troubleshooting

  • pnpm missing during build: use npm (npm install && npm run build) or install pnpm.
  • cargo or rustc missing: rerun web/scripts/linux-bootstrap.sh.
  • pam_appl.h missing: sudo apt-get install -y libpam0g-dev.