Chrome Headless does not launch on Debian: missing libs, no usable sandbox

Running the puppeteer README example on Debian 9 fails with Error: Failed to connect to chrome! on puppeteer.launch(). Launching the bundled Chromium binary manually reports error while loading shared libraries: libX11-xcb.so.1: cannot open shared object file, and after installing libs it hits FATAL:zygote_host_impl_linux.cc(123) No usable sandbox!.

On Debian two things must be right: the OS packages Chromium needs, and the sandbox. Install the full dependency list (gconf-service, libasound2, libatk1.0-0, libx11-xcb1, libxcomposite1, libxdamage1, libxrandr2, libxss1, libxtst6, ca-certificates, fonts-liberation, libappindicator1, libnss3, lsb-release, xdg-utils, etc. see the thread for the exact list, and launch with puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']}) when running as root or on a kernel without user namespacing. The reporter confirmed this unblocked headless Chrome on Debian.

Source: https://github.com/puppeteer/puppeteer/issues/290