Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For a Puppeteer screenshot job on a Debian VPS, install the puppeteer package and let it download the compatible Chrome for Testing browser, then ensure the Debian shared-library dependencies are present. Your VPS being in India does not require a different Chrome package or dependency list. Check your Debian release, CPU architecture, Node.js version, and browser-cache permissions before deploying.

Check Debian, architecture, Node.js, and cache access

Puppeteer’s current system-requirements guide lists Node.js 22.12 or later and Chrome for Testing on Debian or Ubuntu for x64 and arm64. Confirm that your VPS matches those requirements and that the account running the screenshot process can read and execute the browser and access Puppeteer’s configured browser cache. The Puppeteer system-requirements guide covers the current supported environments; verify the requirements for the specific Puppeteer release you deploy.

Install Puppeteer and its compatible browser

In your Node.js project, install puppeteer:

npm i puppeteer

The puppeteer package ordinarily downloads a compatible Chrome for Testing browser during installation. The Puppeteer installation guide puts the Linux browser download at approximately 282 MB, so allow for that download and the space it needs in the browser cache. See Puppeteer’s installation guide for browser download behavior and install options.

If your package manager or deployment policy blocked install scripts, the browser may not have been downloaded. Install it explicitly:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
npx puppeteer browsers install

On Debian or Ubuntu, the browser CLI also offers an option to install Chrome’s OS dependencies. Because that step installs system packages, run it with root privileges:

sudo npx puppeteer browsers install chrome --install-deps

The command is documented in the Puppeteer browser CLI reference. If you cannot or do not want to let the CLI manage OS packages, install the required Debian packages under your own system-administration process instead.

Use a self-managed Chrome only when you need to

Use puppeteer-core when you manage the browser yourself, such as when connecting to a remote browser or selecting a system-managed installation. Unlike puppeteer, it does not download Chrome. Install a browser version supported by your Puppeteer release, then provide its path when launching:

npm i puppeteer-core
const puppeteer = require('puppeteer-core');

(async () => {
  const browser = await puppeteer.launch({
    executablePath: '/usr/bin/google-chrome',
    headless: true
  });
  try {
    const page = await browser.newPage();
    await page.goto('https://example.com', { waitUntil: 'networkidle0' });
    await page.screenshot({ path: 'screenshot.png', fullPage: true });
  } finally {
    await browser.close();
  }
})();

Replace /usr/bin/google-chrome with the actual executable path on your VPS. A Debian-installed Chromium may have a different path and is not automatically interchangeable with Puppeteer’s expected Chrome version. Check the supported-browser mapping for the Puppeteer version you use rather than pairing it with an arbitrary Chrome release.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Take a screenshot with the downloaded browser

With puppeteer installed, a small script can open a URL and save a full-page PNG. Save this as screenshot.js:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  try {
    const page = await browser.newPage();
    await page.setViewport({ width: 1440, height: 900 });
    await page.goto('https://example.com', {
      waitUntil: 'networkidle0',
      timeout: 60000
    });
    await page.screenshot({ path: 'screenshot.png', fullPage: true });
  } finally {
    await browser.close();
  }
})();

Run it with:

node screenshot.js

networkidle0 waits for the network to become idle; pages with persistent network connections may not reach that state, so use a suitable navigation condition or wait for a page-specific selector when necessary. Puppeteer’s installation guide explains its browser installation and launch configuration.

Rank #4
Adamanta 128GB (8x16GB) Server RAM Upgrade for IBM BladeCenter HS23 7875 DDR3 1600Mhz PC3-12800 ECC Registered VLP 2Rx4 CL11 1.5v
  • 128GB ( 16GBx8 ) 1600 MHz ECC Reg 240pin Standard Voltage Dual Rank VLP Memory Module.
  • Every module is backed by a lifetime limited warranty from the manufacturer. We always have hundreds in stock!
  • Free technical support from our experienced technicians.
  • Every single module is fully tested by the manufacturer and certified. These parts are not compatible with non-server computers.
  • Compatible with most major brand servers. Not sure if your server is compatible? Feel free to contact us. Our experienced technicians can verify if these parts will work for you.

Diagnose Chrome launch failures on Debian

Find missing shared libraries

Chrome can be installed yet fail to start if Debian is missing shared libraries. Locate the Chrome executable Puppeteer is using, then inspect unresolved dependencies:

ldd /path/to/chrome | grep not

Replace /path/to/chrome with the installed browser’s executable path. Any output identifies a library the system cannot resolve. Install the corresponding Debian packages, using the package list in Puppeteer’s troubleshooting documentation as a guide. The documented dependency list can change, so use the troubleshooting page applicable to your browser and operating system rather than copying an unrelated package list.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Adamanta 32GB (2x16GB) Server RAM Upgrade for IBM BladeCenter HS23 7875 DDR3 1866Mhz PC3-14900 ECC Registered VLP 2Rx4 CL13 1.5v
  • 32GB ( 16GBx2 ) 1866 MHz ECC Reg 240pin Standard Voltage Dual Rank VLP Memory Module.
  • Every module is backed by a lifetime limited warranty from the manufacturer. We always have hundreds in stock!
  • Free technical support from our experienced technicians.
  • Every single module is fully tested by the manufacturer and certified. These parts are not compatible with non-server computers.
  • Compatible with most major brand servers. Not sure if your server is compatible? Feel free to contact us. Our experienced technicians can verify if these parts will work for you.

Check installation scripts and the browser cache

  • If Chrome is missing after npm i puppeteer, check whether install scripts were disabled by the package manager or deployment policy. Run npx puppeteer browsers install to fetch the browser explicitly.
  • If the process runs as a different user from the installer, confirm that the runtime user can access the Puppeteer browser cache and execute the browser files. A browser downloaded into one user’s home directory may not be available to a service account.
  • For an explicitly managed browser, verify that executablePath points to the installed executable and that its version is supported by the Puppeteer release.

Treat sandbox workarounds as environment-specific

Do not routinely disable Chrome’s sandbox to make a VPS launch succeed. Puppeteer documents Linux sandbox and AppArmor complications in particular environments; first identify the actual launch error and follow the relevant environment-specific guidance in its troubleshooting documentation. Changing sandbox settings can reduce browser isolation, so use a workaround only when the cause is diagnosed and its security trade-off is understood.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Operational considerations for an Indian Debian VPS

The reviewed Puppeteer guidance does not establish a preferred Indian VPS provider, instance size, or regional performance figure. Choose capacity based on your workload and measure it on your own target pages. Each browser download is approximately 282 MB according to Puppeteer’s current installation documentation; account for download time and cache storage when building or redeploying an instance.

For repeatable deployments, keep the Puppeteer package version and its supported browser pairing under control, make the browser available to the same user that runs the job, and ensure the Debian image includes the required libraries. These checks address common installation and launch failures; they do not establish how quickly a particular VPS will capture a given site.

Or skip the browser setup

If you only need screenshot files rather than a browser running on your VPS, ScreenshotNeo is a website screenshot API and MCP server. One GET request returns an image or PDF, without installing Chrome on the VPS. For example, install Python’s requests package and run:

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://example.com"},
    timeout=90,
)
open("shot.webp", "wb").write(r.content)

See the ScreenshotNeo API documentation for request options and response details. ScreenshotNeo accepts cookie or consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and responses report the page verdict and billing status in headers. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000, and every feature is available on every plan.

Sign up free for 1,000 screenshots a month with no card.

Quick Recap

Bestseller No. 3
Bestseller No. 4
Adamanta 128GB (8x16GB) Server RAM Upgrade for IBM BladeCenter HS23 7875 DDR3 1600Mhz PC3-12800 ECC Registered VLP 2Rx4 CL11 1.5v
Adamanta 128GB (8x16GB) Server RAM Upgrade for IBM BladeCenter HS23 7875 DDR3 1600Mhz PC3-12800 ECC Registered VLP 2Rx4 CL11 1.5v
128GB ( 16GBx8 ) 1600 MHz ECC Reg 240pin Standard Voltage Dual Rank VLP Memory Module.; Free technical support from our experienced technicians.
$1,759.99
Bestseller No. 5
Adamanta 32GB (2x16GB) Server RAM Upgrade for IBM BladeCenter HS23 7875 DDR3 1866Mhz PC3-14900 ECC Registered VLP 2Rx4 CL13 1.5v
Adamanta 32GB (2x16GB) Server RAM Upgrade for IBM BladeCenter HS23 7875 DDR3 1866Mhz PC3-14900 ECC Registered VLP 2Rx4 CL13 1.5v
32GB ( 16GBx2 ) 1866 MHz ECC Reg 240pin Standard Voltage Dual Rank VLP Memory Module.; Free technical support from our experienced technicians.
$579.99

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.