Sign inSign up

digitalist/alpine-puppeteer-renderer

By digitalist

Updated over 6 years ago

Render headless chrome screenshots easily

Image
1

6.7K

digitalist/alpine-puppeteer-renderer repository overview

Puppeteer(Chrome headless node API) based web page renderer

This project is based on zenato/puppeteer-renderer.

Current repo

https://github.com/nodeone/alpine-puppeteer-renderer

Puppeteer

Puppeteer (Chrome headless node API) based web page renderer.

Useful server side rendering through proxy. Outputs HTML, PDF and screenshots as PNG or JPEG.

Requirements

Docker

Start server using docker.

docker run -d --name renderer -p 8080:3000 digitalist/alpine-puppeteer-renderer

Test on your browser

Input url http://localhost:8080/?url=https://www.google.com

If you can see a html page (yes it will be broken - not the same for pdf and screenshots), server works fine.

Integration with existing service.

If you have active service, set proxy configuration with middleware. See puppeteer-renderer-middleware for express.

const renderer = require('puppeteer-renderer-middleware');

const app = express();

app.use(renderer({
  url: 'http://installed-your-puppeteer-renderer-url',
  // userAgentPattern: /My-Custom-Agent/i,
  // excludeUrlPattern: /*.html$/i
  // timeout: 30 * 1000,
}));

// your service logics..

app.listen(8080);

API

NameRequiredValueDefaultDescription
urlyesurlTarget URL
variantpdf, screenshotRendering another type.
typejpeg, pngpngImage output type
isMobiletrue, falsefalseEmulate mobile
widthnumber800Width of screenshot
heightnumber600Height of screenshot
mediaprint, screenprintCSS media type
deviceScaleFactornumber1Device scale
jsEnabledtrue, falsetrueEnable javascript
hasTouchtrue, falsefalseEmulate touch
isLandscapetrue, falsefalseEmualte landscape
waitUntilload, domcontentloaded, networkidle0, networkidle2networkidle0When considered done loading page
timeoutnumber30000Request timeout time
qualitynumber100Quality of output image, only valid for jpeg, errors on png
Examples
http://localhost:8080/?url=https://www.google.com&type=png&width=1200&height=800&variant=screenshot

Outputs a screenshot of google in png format, width 1200 and height 800.

http://localhost:8080/?url=https://www.google.com&type=jpeg&width=1200&height=800&variant=screenshot&quality=80

Outputs a screenshot of google in jpeg format, in 80% quality, width 1200 and height 800

Tag summary

Content type

Image

Digest

Size

150.1 MB

Last updated

over 6 years ago

docker pull digitalist/alpine-puppeteer-renderer