Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
FREEDOM251

Freedom251 › Blog › Chrome for Testing

Puppeteer Screenshots on an Indian Ubuntu VPS: Install Chrome and Capture a Page

By Freedom251 Team · · 5 min read

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

To take a Puppeteer screenshot on an Ubuntu VPS, install Puppeteer and its matching Chrome for Testing browser, install the required Linux libraries, then launch Puppeteer in headless mode and save a page screenshot. The browser setup is the standard Ubuntu/Debian path; an Indian data-center location matters mainly when choosing where to run jobs for nearby users or data sources, not for the installation steps.

Choose the browser installation path

Recommended: Puppeteer-managed Chrome

For a new Node.js project, install the puppeteer package. It downloads a compatible Chrome for Testing version by default. Puppeteer’s v25.12.0 installation guide puts the Linux browser download at approximately 282 MB; that is the download size, not a guarantee of total disk usage after extraction, dependencies, browser profiles, and screenshots. See the Puppeteer installation guide.

As an Amazon Associate I earn from qualifying purchases.

Chrome for Testing is supported on Debian/Ubuntu Linux on both x64 and arm64. Check the VPS architecture before provisioning or diagnosing a missing or incompatible browser binary; the supported-platform details are in Puppeteer’s supported platforms.

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

Alternative: manage Ubuntu’s Chromium yourself

Ubuntu’s Chromium package has a snap context, so using it is a separate browser-management choice, not a drop-in assumption that fits every VPS image. If you manage the browser yourself, use puppeteer-core and set executablePath to the actual browser binary. Verify that the installed Chromium version works with your Puppeteer version and VPS image. The available documentation does not establish that this approach is universally preferable to Puppeteer-managed Chrome.

Install Puppeteer and browser dependencies

  1. Confirm the machine’s architecture and install a supported Node.js runtime. Puppeteer’s current system requirements page specifies Node.js 22.12 or later; check the system requirements again when provisioning because runtime requirements can change.

  2. Create a project and install Puppeteer:

    mkdir puppeteer-shot && cd puppeteer-shot
    npm init -y
    npm install puppeteer
  3. If the package manager skipped Puppeteer’s install script and no browser was downloaded, explicitly install Chrome for Testing:

    npx puppeteer browsers install chrome

    Alternatively, allow Puppeteer’s install script according to your package manager’s policy. Avoid silently assuming the browser exists just because the Node package installed.

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
    Rank #2
    Linux Builder Learn How to Use Linux, Ubuntu Linux 22.04 Bootable 8GB USB Flash Drive - Includes Boot Repair and Install Guide
    • The preinstalled USB stick allows you to learn how to learn use Linux, boot and load Linux without uninstalling your current OS! 30 day money back guarantee no questions asked! See s://.gnu.org/philosophy/selling.en.html for more info about open source software!
    • Comes with easy to follow install guide. 24/7 software support via email included. (Only USB flash drives sold by the seller Linux Builder include this)
    • Ubuntu 22.04 - 'Jammy Jellyfish'
    • Comprehensive installation includes lifetime free updates and multi-language support, productivity suite, Web browser, instant messaging, image editing, multimedia and email for your everyday needs
    • Boot repair is a very useful tool! This USB drive will work on all modern day computers, laptops or desktops, custom builds or manufacture built!
  4. Install Chrome and its required operating-system dependencies with apt privileges during provisioning:

    sudo npx puppeteer browsers install chrome --install-deps

    This command needs root/apt privileges for system packages. Run setup as a privileged provisioning step, then run the application and browser as an unprivileged user. Do not respond to a permissions error by running the production browser process as root. See Puppeteer’s troubleshooting guidance.

  5. Make sure the runtime account can read Puppeteer’s browser cache. By default it is under $HOME/.cache/puppeteer; if installation and execution use different users or home directories, the runtime account may not see the installed browser.

Capture a screenshot with Puppeteer

Save the following as screenshot.mjs in the project. Puppeteer runs headless by default, so a VPS does not need a visible desktop. The code sets a viewport, navigates, saves a full-page PNG, and closes the browser even if navigation or capture fails.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
import puppeteer from 'puppeteer';

const browser = await puppeteer.launch();
try {
  const page = await browser.newPage();
  await page.setViewport({ width: 1280, height: 800 });
  await page.goto('https://example.com', { waitUntil: 'networkidle2' });
  await page.screenshot({ path: 'page.png', fullPage: true });
} finally {
  await browser.close();
}

Run it with:

node screenshot.mjs

The networkidle2 wait condition is only an example. Pages with long-lived connections or delayed rendering may not become network-idle at the right time. For those pages, choose a more appropriate navigation condition or wait for a specific selector that indicates the content is ready. Puppeteer’s overview documents the launch, page, navigation, and screenshot flow at pptr.dev.

Account for the Indian VPS location

A data center located near Indian users or the source systems your job visits can reduce network distance, but no India-specific screenshot latency or performance benchmark is established here. Select a provider only after checking the actual data-center location, x64 or arm64 architecture, available CPU and memory, disk capacity, bandwidth, and outbound-network restrictions. No provider, instance size, price, or uptime figure is verified for this guide.

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

Troubleshoot common launch and capture failures

“Could not find Chrome” or no browser executable

The package manager may have blocked Puppeteer’s install script. Run npx puppeteer browsers install chrome, then confirm the runtime account can read the browser cache in its own home directory.

Chrome reports missing shared libraries

Use the documented --install-deps route during privileged setup. To investigate an existing install, inspect the browser binary’s shared-library dependencies with ldd and compare missing libraries against Puppeteer’s current Debian/Ubuntu dependency guidance. Common dependency families include NSS, GTK, GBM, fontconfig, and X11 components; do not assume a hand-written package list covers every Ubuntu image or release.

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

“No usable sandbox!” or a sandbox-related launch error

Keep Chrome’s sandbox enabled where possible. Puppeteer strongly discourages --no-sandbox because sandboxing is a security boundary for web content; diagnose missing libraries and the host’s user-namespace configuration first. Ubuntu 23.10 and later may apply an AppArmor profile affecting Chrome stable at /opt/google/chrome/chrome, which can block user namespaces and affect Puppeteer-downloaded Chrome for Testing. Check the current Puppeteer troubleshooting page for a release-specific remedy rather than applying an old workaround blindly. Use --no-sandbox only for trusted content when you accept the security trade-off.

Navigation hangs or the screenshot misses content

A page may keep network connections open or render important content after navigation appears complete. Replace networkidle2 with a condition suited to the page, or wait for a selector tied to the content you need before calling screenshot().

Profile, cache, or output write errors

Check that the unprivileged runtime user can write its browser profile and the directory where the screenshot is saved. Also check available disk space: the browser download is substantial, and extracted files, libraries, profiles, and output require additional room. The cited documentation does not establish a universal minimum VPS disk, RAM, or CPU size.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server: a GET request can return a PNG, JPEG, WebP, or PDF without you provisioning Chrome on the VPS. Cookie and consent banners, newsletter popups, and chat widgets are removed before capture; each cleanup step can be turned off. Bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and the response identifies the page verdict and billing status in headers. Its MCP server gives AI agents tools for screenshots, page information, and PDF capture.

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

One-call cURL example (see the ScreenshotNeo API documentation; replace the key and target URL):

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp

The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. Sign up for 1,000 free screenshots a month, with no card required.

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.

Chrome for TestingNode.jsPuppeteerUbuntuVPSweb screenshots

Leave a Reply

Your email address will not be published. Required fields are marked *

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.

Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.