Run Puppeteer on Termux
Termux is an Android terminal emulator and Linux environment app that works directly with no rooting or setup required. A minimal base system is installed automatically - additional packages are available using the APT package manager.
Assumptions
- You have termux installed and have sufficient permissions
- You have logged-in as root user
- You are okay with running Puppeteer inside a container (Alpine)
Gotchas
- There is no build of Google Chrome available for ARM at this moment, so using chromium instead.
- Installing chromium on Termux directly requires snap which is another big hurdle so alternatively using alpine distro here.
pkg install proot-distro
proot-distro install alpine
proot-distro login alpine
apk update && apk add --no-cache nmap && \
echo @edge http://nl.alpinelinux.org/alpine/edge/community >> /etc/apk/repositories && \
echo @edge http://nl.alpinelinux.org/alpine/edge/main >> /etc/apk/repositories && \
apk update && \
apk add --no-cache \
chromium
- Node js v12.14+
- Yarn v1.22+
git clone https://github.com/rishabhrpg/puppeteer-on-termux.git
cd puppeteer-on-termux
yarn install
node index.js
- If you see a message "screenshot saved" then puppeteer is successfully configured to run on termux
- Use this repo as starting point as it has correct args included to successfully run chromium on termux
- To view screenshot on your device you can run
npx http-server
and aceess the screenshot directory from a browser.
- Puppeteer running as root without --no-sandbox is not supported
- Set up Headless Chrome Node.js server in Docker
- Enjoyable browser automation with Puppeteer
- Set Chrome Flags in Puppeteer
MIT