Pupper is a simplified fork of jclvicerra/puppeteer-prerender web page prerenderer service based on Puppeteer(Chrome headless node API). Which is almost ready to use in production (actually we are already using it :) ).
Useful server side rendering through proxy. Outputs only HTML (if you need PDF on PNG consider forking this project or use the original).
-
docker and k8s ready
-
Limiting concurrent requests
-
Pupper uses Redis as cache backend
-
Has a blacklist of domains to ignore while rendering pages (e.g. metrics, stats, trackers, etc)
-
Correct status codes for crawlers (using
<meta name="prerender-status-code" content="404">
) -
and other ...
npm install
node src/index.js
docker build -t kexpress/pupper .
docker run -i --rm --cap-add=SYS_ADMIN --name puppeteer-chrome -p 8080:3000 kexpress/pupper
curl http://puppeteer-renderer/http://www.google.com
Copyright (c) 2019-present, Alik Khilazhev