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.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitches#1 Best Overall
- 【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
-
From your application directory, initialize the project if needed and install Puppeteer:
npm init -y npm install puppeteerThe 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. -
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.
-
Check that the browser was installed and run a smoke test using the service’s eventual OS account, not only an administrator shell.
DriversOutdated Drivers Are Slowing You DownPerformancePC Slower Than It Used to Be?DriversCrashes, No Sound, or Screen Glitches?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
- 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.
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.
Rank #3
- 【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.
-
Confirm the instance architecture with
uname -m; for ARM64, expectaarch64. -
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.
-
Check the executable architecture and dependencies, then set
executablePathto that browser in Puppeteer. -
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.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →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
- 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:
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.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Best Value
- 【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.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.
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.
Quick Recap
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.

