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

To run Puppeteer on EC2, match three things before launching: the instance’s Linux distribution, CPU architecture, and Chrome or Chromium binary. On a supported x86_64 setup, npm i puppeteer normally downloads a compatible Chrome for Testing build; on Graviton, install an ARM64 browser instead. Then install that browser’s Linux libraries and test it as the same OS user that will run your service.

Choose the EC2 image and browser strategy first

Puppeteer is a JavaScript library for controlling Chrome or Firefox, and it runs headless by default. The current Puppeteer requirements page specifies Node.js 22.12 or later and lists supported Linux distributions and architectures for Chrome for Testing. Check the current requirements against the AMI and architecture you plan to use; supported combinations and package availability can change.

  • Ubuntu or Debian, x86_64: The simplest route is usually Puppeteer-managed Chrome for Testing, provided its install script runs and the required system libraries are installed.
  • Amazon Linux: Use commands and packages appropriate to the exact release. Older Amazon Linux instructions are not universal instructions for Amazon Linux 2023.
  • Graviton / ARM64: Use an ARM64 browser executable. AWS’s Graviton guide notes that Puppeteer’s bundled Chrome is x86, so the default downloaded binary does not match an ARM instance.
  • System Chromium: Useful when you need the distribution’s browser package, but you must maintain compatibility between that executable and your Puppeteer version.

Confirm the machine before choosing commands:

cat /etc/os-release
uname -m
node --version
npm --version

uname -m commonly reports x86_64 or aarch64. Do not mix Ubuntu package commands with Amazon Linux commands, or assume an x86 browser works on ARM.

Install Node.js and Puppeteer on Ubuntu or Debian

Install a Node.js version that meets Puppeteer’s current minimum, then install Puppeteer with its browser-download step enabled. The exact Node.js installation method depends on your chosen Ubuntu or Debian release; use a maintained source appropriate to that OS rather than an unrelated distribution’s package instructions.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
15.6" All-in-One Desktop Computers, FHD 360°Adjustable Touchscreen Win 11 Pro Industrial Tablet PC N5095 8GB RAM 128GB ROM, HDMI 2.0 WiFi 5 Bluetooth 5.0 for Office/Automation/Kiosk/Bar/Warehouse
  • 【Integrated touch screen display】This all in one desktop computer features a 15.6-inch FHD 1920 * 1080 IPS touchscreen display and supports a 10 point synchronous touchscreen. Without the constraints of a mouse or keyboard, image dragging and zooming, web page sliding, application switching, and text input can all be completed through fingertip touch. This multifunctional touchscreen mini PC features a sleek and integrated design that eliminates the clutter of cables and traditional peripherals from taking up desktop space.
  • 【Free spinning screen & flexible folding】This Industrial computers combines triple flexible adjustment, with a 360 °all-round screen rotation, allowing for easy switching between landscape viewing, portrait browsing, and multi angle sharing and display; The 180 °vertical rotating screen supports adjustable height and visual angle, making it easy to adapt for standing demonstrations, desk work, or multi person collaborative sharing, The 180 °folding bracket provides convenient storage, stable support during use, and lightweight folding for easy space saving
  • 【Powerful Performance & Reasonable Storage】The all-in-one desktop computer is equipped with an N5095 processor with a clock speed of up to 3.4GHz, perfectly integrating smooth operation, low energy consumption, and efficient heat dissipation. Don't worry about insufficient storage or running lag! This multifunctional touchscreen computer is equipped with 8GB RAM and 128GB ROM, achieving a balance between performance and capacity. From office creation to gaming and entertainment, it fully meets your digital life needs
  • 【WiFi & Bluetooth】This all-in-one desktop computer integrates multiple network and device connectivity solutions, including Bluetooth, WiFi, and RJ45 Gigabit Ethernet ports. A stable WiFi connection ensures smooth daily internet access. When the wireless signal is poor, the gigabit network port immediately provides stable and high-speed wired transmission, providing dual protection against network fluctuations. At the same time, the Bluetooth function supports easy pairing with wireless headphones, speakers, and other devices, breaking cable limitations and unlocking more device connectivity scenarios to meet diverse needs such as office and entertainment
  • 【Rich Ports】This all-in-one computer comes with power ports * 1, HDMI2.0 ports * 1, USB3.0 ports * 2, USB2.0 ports * 2, USB-C ports * 1, 1000Mbps Gigabit LAN ports * 1, TF card socket * 1, DC and 3.5mm Audio ports * 1. The diversity of connection ports ensures that you can easily manage work requirements or entertainment settings
  1. From your application directory, initialize the project if needed and install Puppeteer:

    npm init -y
    npm install puppeteer

    The normal Puppeteer install downloads a compatible Chrome for Testing build and, from Puppeteer v21.6.0, chrome-headless-shell. Chrome for Testing downloads are approximately 282 MB on Linux; this is the browser download size, not a total disk-sizing recommendation.

  2. Install the Chrome system dependencies for your OS. Puppeteer’s troubleshooting documentation lists common Ubuntu/Debian dependencies and notes that missing shared libraries can prevent launch. Package names and availability vary by release, so follow the current Puppeteer Linux troubleshooting guidance for the selected image.

  3. Check that the browser was installed and run a smoke test using the service’s eventual OS account, not only an administrator shell.

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

Some package-manager configurations block dependency install scripts. If Puppeteer is present but the expected browser is absent, check that browser download scripts were not disabled and review Puppeteer’s installation guidance.

Use system Chromium when you need to manage the browser yourself

With a system-installed browser, install Chromium from repositories supported by the specific AMI, then tell Puppeteer which executable to launch. This gives you control over the browser package source, but you take responsibility for browser/Puppeteer compatibility and updates.

Rank #2
KINGDEL Industrial PC, Fanless Mini Desktop Computer with Celeron Dual Core CPU, 8GB RAM, 128GB SSD, 2xNICs, 4xCOM RS232, HD Port, Full Metal Body
  • Processor of the Mini Computer: Celeron 1007U/1037U Dual Core, 2M Cache, 22 nm Lithography CPU
  • RAM & Drive of the Mini PC: 8GB DDR3L RAM, 128GB mSATA SSD(Solid State Disk), Fanless, Metal Case
  • Graphics of the Mini Gaming Computer: Integrated HD Graphics, Max Dynamic Frequency 1GHz
  • This KINGDEL business office pc includes 2*NICs, 4*COM RS232, HD Port, VGA, 4*USB 3.0, 4*USB2.0
  • What in Box: Mini PC, Power Supply, Power Cable, Antenna, Screws.
npm install puppeteer-core

puppeteer-core does not download a browser. Use an explicit executable path in your application:

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

(async () => {
  const browser = await puppeteer.launch({
    executablePath: '/path/to/chromium',
    headless: true,
  });
  try {
    const page = await browser.newPage();
    await page.goto('https://example.com', { waitUntil: 'domcontentloaded' });
    console.log(await page.title());
  } finally {
    await browser.close();
  }
})();

Replace /path/to/chromium with the actual executable path on that AMI. If using the full puppeteer package rather than puppeteer-core, you can also provide executablePath, but doing so opts you into managing that browser pairing yourself.

Free tools Windows power users keep installed

One-click scans. No signup required.

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

Amazon Linux needs release-specific instructions

Puppeteer’s troubleshooting page documents an older Amazon Linux route using EPEL followed by Chromium installation:

sudo amazon-linux-extras install epel -y
sudo yum install -y chromium

This is the documented Amazon Linux context, not a universal recipe for current Amazon Linux releases. The page warns that without repository and dependency setup, Chromium can fail because libraries such as libatk-1.0.so.0 are missing. Before applying it, verify that the commands, repositories, and package exist for the exact AMI and release you are running. For Amazon Linux 2023, use its own package sources and AWS’s release-specific examples rather than assuming the older amazon-linux-extras flow applies.

AWS also publishes a Graviton guide with separate Ubuntu 22 and AL2023 examples, including ARM browser installation and Xvfb for headful tests. Its examples include pinned package versions and external package sources; verify that those sources and versions remain appropriate before using them.

Run Puppeteer on Graviton / ARM64

Graviton instances use ARM architecture. AWS’s guide notes that Puppeteer’s bundled Chrome is x86, so installing Puppeteer normally does not by itself give you a matching ARM browser. Install an aarch64 browser from a source supported for the exact distribution, then pass its path to Puppeteer.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
BOSGAME P6 Neo Mini Gaming PC, Desktop Computers Ryzen 7 6800H, Radeon 680M Graphics, 24GB DDR5 RAM, 1TB PCIe 4.0x4 SSD, Triple Display (HDMI/DP/USB4), USB4 8K 60Hz, WiFi 6E, BT5.2, Dual 2.5GbE LAN
  • 【Powerful Ryzen 7 6800H Processor】BOSGAME P3 Lite Mini PC features the AMD Ryzen 7 6800H processor with 8 cores and 16 threads, up to 4.7GHz, and Radeon 680M GPU (1900MHz). Ideal for design software (Photoshop, Premiere, CAD) and popular games like PUBG, LOL, and PS3 emulators.
  • 【Powerful Graphics & Radeon 680M】Equipped with AMD Radeon 680M Graphics built on RDNA 2 architecture, delivering high frame rates for gaming and exceptional performance for content creation and video editing.
  • 【24GB DDR5 RAM & 1TB PCIe SSD】Built with 24GB(12GB x2) Dual-channel DDR5 4800MHz RAM (expandable to 64GB) and 1TB M.2 2280 PCIe 4.0 SSD (expandable to 4TB), providing faster data processing and ample storage for games, AI training, and creative projects.
  • 【Triple Display & USB4 8K@60Hz】 Bosgame Ryzen 7 Micro PC allows for triple displays via 1*HDMI2.0, DP x1 and USB4 8K@60Hz output, catering to the demands of daily design work and most low-power games. Run AI training, data processing, and media streaming simultaneously to enhance work efficiency effectively.
  • 【RJ45 2.5GbE LAN & WiFi 6E】Bosgame Mini Computers USB4 port supports PD 3.0 (up to 100W), meaning you can power the Bosgame P3 Lite conveniently for portability. Features dual 2.5GbE LAN for complex networks (firewalls, routers) and WiFi 6E for faster, stable connections. Includes Bluetooth 5.2.
  1. Confirm the instance architecture with uname -m; for ARM64, expect aarch64.

  2. Install an ARM64-compatible Chrome or Chromium package following the relevant OS and AWS guidance. Do not copy an x86 browser binary or repository setup onto the ARM host.

  3. Check the executable architecture and dependencies, then set executablePath to that browser in Puppeteer.

  4. Run the smoke test as the runtime user. If you need visible browser windows for tests, configure a display server such as Xvfb; ordinary headless operation does not require a desktop display.

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

Launch a smoke test safely

Create a small test that opens a known page, prints its title, and closes the browser even if navigation fails:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  try {
    const page = await browser.newPage();
    await page.goto('https://example.com', { waitUntil: 'domcontentloaded' });
    console.log(await page.title());
  } finally {
    await browser.close();
  }
})();

Save as smoke.js, then run node smoke.js under the same non-root user and service environment intended for production. If using a system browser, use puppeteer-core and the explicit executablePath example above. Chrome uses multiple sandbox layers. Keep sandboxing enabled where the host supports it; Puppeteer documents --no-sandbox only for content you are absolutely sure is trusted, not as a general launch fix.

Rank #4
CanaKit Raspberry Pi 5 Desktop PC with SSD (Fully Assembled) (256 GB SSD)
  • Fully assembled for plug-and-play operation
  • Includes Raspberry Pi 5 with 8GB RAM
  • 256 GB PCIe Pi NVMe SSD (Pre-loaded with Pi 64-Bit OS)
  • M.2 HAT+
  • CanaKit Turbine Black Case for the Pi 5

Diagnose launch failures systematically

“Could not find Chrome”

Check whether Puppeteer’s install script was blocked and whether its expected browser cache exists for the current user. Browser downloads and caches can be user- and environment-specific; an install performed as root may not leave a browser where a service account expects it. Either restore the Puppeteer browser installation step or configure a known system executable explicitly.

“Failed to launch” or a missing .so library

Run ldd on the actual browser binary and look for unresolved libraries:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
ldd /path/to/chrome | grep not

Replace the path with the executable Puppeteer is launching. Install each missing library using packages for that exact Linux distribution and release, then repeat the check. Puppeteer’s troubleshooting page identifies missing shared libraries as a common Linux launch cause.

“No usable sandbox!”

Check the runtime user and host sandbox prerequisites first. Do not make --no-sandbox the default production solution. Puppeteer’s stated exception is when you are absolutely sure about the content you open; disabling sandboxing weakens an important browser security boundary.

It works over SSH but fails as a service

Compare the interactive and service environments: OS user, HOME, browser cache location, executable path, directory permissions, environment variables, and available memory. Ensure the runtime user can access its profile and cache directories. These differences are common operational causes even when the browser works from an administrator shell.

ARM-only launch failure

Check uname -m and inspect the browser executable. An aarch64 instance needs a compatible ARM64 browser, not Puppeteer’s x86 Chrome build.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
HIGOLEPC Mini PC Computer Win 11 Pro, 10.1" Touchscreen Desktop Computer with 5000mAh Battery, All in One Pc N5095 8GB RAM 128GB eMMC, Dual RS232, HDMI 2.0, Type-C 3.1 Full-Function
  • 【Mini PC with 10.1" HD Touchscreen – No Mouse & Keyboard Needed】This all-in-one mini computer features a 10.1-inch 1280×800 HD IPS touchscreen with G+G 5-point multi-touch, so you can use it without a mouse and keyboard. Perfect for home office, study, industrial use, or smart home control. You can also remotely control any other laptop via Remote Desktop protocol from this micro computer
  • 【Fanless Mini Computer with Intel N5095 Processor】Equipped with a faster 12th Gen Intel N5095 quad-core processor (4 cores, 4 threads, 6MB cache, 2.0GHz base up to 2.7GHz/2.9GHz turbo), this fanless mini PC prevents CPU/GPU throttling and draws under 10 watts. It delivers smooth multitasking for business, family, web browsing, email, document editing, and light photo editing
  • 【OS System Pre-installed with 8GB RAM & 128GB Storage】HIGOLEPC 10.1-inch touchscreen mini computer pc running Windows 11 Pro, designed for seamless productivity. Equipped with 8GB high-speed LPDDR4 RAM and 128GB eMMC storage, this mini PC delivers lightning-fast performance for multitasking
  • 【Dual 4K Display Support】This compact mini desktop powered by Intel UHD Graphics, delivers smooth 4K UHD video playback and accelerated image processing. With HDMI + Type-C (3.1) ports, this mini desktop drives two 4K displays simultaneously, delivering crisp visuals and seamless multitasking
  • 【Rich Input/Output Ports & 5000mAh Battery】All important connections are available: 4 x USB 3.0 ports, 1 x HDMI 2.0 port, 2 x RS232 ports, 1 x Gigabit Ethernet port, 1 x SD Card port, plus 1 x full-function Type-C (3.1) for 4K output. Supports PXE, built-in audio and microphone. The 5000mAh high-capacity battery delivers uninterrupted power for extended work sessions without performance lag

Headful tests fail without a display

Headless mode is the default and does not need a visible desktop. If the test requires a visible window, start and configure a display server such as Xvfb as shown in the relevant AWS Graviton guidance.

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

Choose between managed browser, system package, and prepared image

Approach Best fit Main trade-off
Puppeteer-managed Chrome for Testing Supported x86_64 environments where the install script can download the paired browser Simple version pairing; requires download/cache handling and the browser’s system libraries
System Chromium When the AMI’s supported package source or deployment policy requires a managed OS package More control over package source; you must check compatibility, executable path, architecture, and updates
Manual ARM browser installation Graviton instances Required architecture match, with extra responsibility for selecting and maintaining the browser source
Preconfigured Marketplace AMI When setup effort is more important than starting from a minimal image A third-party AWS Marketplace listing titled “Puppeteer on Headless Ubuntu” describes an Ubuntu EC2 image with Puppeteer, Chrome, sample scripts, and SSH access; verify the listing and image details before use

Or skip the browser setup

If your goal is to capture web pages rather than operate a browser on your own EC2 instance, ScreenshotNeo is a website screenshot API and MCP server. A single request returns a PNG, JPEG, WebP, or PDF. Its capture flow accepts consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each cleanup step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and responses identify the page verdict and billing status in headers. AI agents can use its MCP server tools, including take_screenshot, get_page_info, and capture_pdf.

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

See the ScreenshotNeo API documentation for request options and supported formats. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots. Sign up for ScreenshotNeo free.

Frequently Asked Questions

Does Puppeteer need a graphical desktop on EC2?

No. Puppeteer runs headless by default. A display server such as Xvfb is for tests that need a visible browser window.

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

Can I use Puppeteer on an AWS Graviton instance?

Yes, but pair the ARM64 instance with an ARM64 browser executable; the x86 Chrome bundled by Puppeteer is not the right binary for Graviton.

Is Puppeteer’s no-sandbox flag a safe standard fix?

No. Keep Chrome sandboxing enabled where possible; Puppeteer documents the flag only for absolutely trusted content.

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.