All Projects → bosondata → Chrome Prerender

bosondata / Chrome Prerender

Licence: mit
Render JavaScript-rendered page as HTML/PDF/mhtml/png/jpeg using Headless Chrome

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Chrome Prerender

server-render-javascript
Prerender your javascript web page for better seo with PhantomJS. ⚠️ no es6 supported.
Stars: ✭ 12 (-92.55%)
Mutual labels:  prerender, server-rendering
Isomorphic Redux Cnode
😊👻基于react->express->mongo技术栈的同构SPA
Stars: ✭ 123 (-23.6%)
Mutual labels:  server-rendering
Blazar
Pre-Render Pages on the Fly in Laravel
Stars: ✭ 14 (-91.3%)
Mutual labels:  prerender
Photo Blog
The Photo Blog Application based on Laravel 5 and Vue.js 2 + Prerender
Stars: ✭ 55 (-65.84%)
Mutual labels:  prerender
Laravel Nuxt
A Laravel-Nuxt starter kit.
Stars: ✭ 943 (+485.71%)
Mutual labels:  server-rendering
Dva Starter
完美使用 dva react react-router,最好用的ssr脚手架,服务器渲染最佳实践
Stars: ✭ 60 (-62.73%)
Mutual labels:  server-rendering
Prerendercloud Nodejs
Express/Connect middleware for prerendering javascript-rendered pages with https://www.prerender.cloud for isomorphic/universal server side rendering
Stars: ✭ 18 (-88.82%)
Mutual labels:  prerender
Cacheable Response
An HTTP compliant route path middleware for serving cache response with invalidation support.
Stars: ✭ 157 (-2.48%)
Mutual labels:  server-rendering
Prerender Java
java framework for prerender
Stars: ✭ 115 (-28.57%)
Mutual labels:  prerender
Ostrio
▲ Web services for JavaScript, Angular.js, React.js, Vue.js, Meteor.js, Node.js, and other JavaScript-based websites, web apps, single page applications (SPA), and progressive web applications (PWA). Our services: Pre-rendering, Monitoring, Web Analytics, WebSec, and Web-CRON
Stars: ✭ 52 (-67.7%)
Mutual labels:  prerender
Vue Firebase Starter
boilerplate of vue/vuex/vue(x)-router, with sass/prerendering, muse-ui, and firebase/firebaseui
Stars: ✭ 43 (-73.29%)
Mutual labels:  prerender
Prerender Alpine
Lightweight Prerender container built on Alpine Linux with Node and Headless Chrome
Stars: ✭ 38 (-76.4%)
Mutual labels:  prerender
React Paginating
Simple, lightweight, flexible pagination ReactJS component ⏮⏪1️⃣2️⃣3️⃣⏩⏭
Stars: ✭ 89 (-44.72%)
Mutual labels:  server-rendering
Nuxt.js
The Intuitive Vue(2) Framework
Stars: ✭ 38,986 (+24114.91%)
Mutual labels:  server-rendering
Vue Seo Prerender
Vue.js Tutorial: A Prerendered, SEO-Friendly Example
Stars: ✭ 139 (-13.66%)
Mutual labels:  prerender
Deprecated
🚀 Framework for building universal web app and static website in Vue.js (beta)
Stars: ✭ 858 (+432.92%)
Mutual labels:  server-rendering
Ng Static Site Generator
ng-static-site-generator is a webpack-based command line build tool that builds an Angular app and Jekyll-style blog entry html files into a static html and css website. It also supports building a client app so you can have static pages that are also capable of running dynamic functionality coded in Angular.
Stars: ✭ 42 (-73.91%)
Mutual labels:  prerender
Vulcan
🌋 A toolkit to quickly build apps with React, GraphQL & Meteor
Stars: ✭ 8,027 (+4885.71%)
Mutual labels:  server-rendering
Prerender Loader
📰 Painless universal pre-rendering for Webpack.
Stars: ✭ 1,908 (+1085.09%)
Mutual labels:  prerender
Create React Server
Server & middleware for React + Router + Redux with Server Side Rendering
Stars: ✭ 139 (-13.66%)
Mutual labels:  server-rendering

prerender

Render JavaScript-rendered page as HTML/PDF/mhtml/png/jpeg using headless Chrome

Install Chrome

Headless mode is supported in Chrome stable 59+ and unstable/dev channel, you should be able to install it via:

https://www.google.com/chrome/browser/beta.html?platform=linux

Start Chrome Headless

$ google-chrome --headless --remote-debugging-port=9222 --disable-gpu "about:blank"

To disable image loading, add --blink-settings=imagesEnabled=false argument:

$ google-chrome --headless --remote-debugging-port=9222 --disable-gpu --blink-settings=imagesEnabled=false "about:blank"

Install Prerender

$ pip install -U prerender

Start Prerender

As standalone application:

$ prerender

To run it under gunicorn:

$ gunicorn --bind 0.0.0.0:3000 --worker-class sanic.worker.GunicornWorker prerender.app:app

How does it work

Say you deployed Prerender under http://prerender.example.com:8000, to render http://example.com you can do:

$ # render HTML
$ curl http://prerender.example.com:8000/http://example.com
$ curl http://prerender.example.com:8000/html/http://example.com
$ # render mhtml
$ curl http://prerender.example.com:8000/mhtml/http://example.com
$ # render PDF
$ curl http://prerender.example.com:8000/pdf/http://example.com
$ # render png
$ curl http://prerender.example.com:8000/png/http://example.com
$ # render jpeg
$ curl http://prerender.example.com:8000/jpeg/http://example.com

Configuration

Settings are mostly configured by environment variables.

ENV default value description
HOST 0.0.0.0 Prerender listen host
PORT 8000 Prerender listen port
DEBUG false Toggle debug mode
PRERENDER_TIMEOUT 30 renderring timeout
PAGE_DONE_CHECK_TIMEOUT 200 Number of milliseconds between the interval of checking whether the page is done loading or not
CONCURRENCY 2 * CPU count Chrome pages count
MAX_ITERATIONS 200 Restart Chrome page after rendering this many pages
CHROME_HOST localhost Chrome remote debugging host
CHROME_PORT 9222 Chrome remote debugging port
USER_AGENT Chrome User Agent
BLOCK_FONTS 1 Block web fonts loading, set to 0 to allow fonts loading
ALLOWED_DOMAINS Domains allowed for renderring, comma seperated
CACHE_BACKEND dummy Cache backend, dummy, disk, s3
CACHE_LIVE_TIME 3600 Disk cache live seconds
CACHE_ROOT_DIR /tmp/prerender Disk cache root directory
S3_SERVER s3.amazonaws.com S3 server address
S3_ACCESS_KEY S3 access key
S3_SECRET_KEY S3 secret key
S3_REGION S3 region
S3_BUCKET prerender S3 bucket name
SENTRY_DSN Sentry DSN, for exception monitoring
ENABLE_CIRCUIT_BREAKER false enable circuit breaker
CIRCUIT_BREAKER_FAIL_MAX 5 maximum failures per browser/bot before circuit breaker open
CIRCUIT_BREAKER_RESET_TIMEOUT 60 circuit breaker reset timeout in seconds

Configure client

Please view the original NodeJs version prerender README.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].