bosondata / Chrome Prerender
Licence: mit
Render JavaScript-rendered page as HTML/PDF/mhtml/png/jpeg using Headless Chrome
Stars: ✭ 161
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
Photo Blog
The Photo Blog Application based on Laravel 5 and Vue.js 2 + Prerender
Stars: ✭ 55 (-65.84%)
Mutual labels: prerender
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
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
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].