Lightweight Prerender container built on Alpine Linux with Node and Headless Chrome.
- Prerender 5.12.0
- Chromium 86.0.4240.111
- Node 14.16.0
- Docker
Pull and run the image:
docker pull dhlabs/prerender
docker run -p 3000:3000 dhlabs/prerender
Prerender will now be running on http://localhost:3000. Try the container out with curl:
curl http://localhost:3000/render?url=https://www.example.com/
A few default plugins have been activated by default (see server.js
):
- https://github.com/prerender/prerender/blob/master/lib/plugins/whitelist.js
- https://github.com/prerender/prerender/blob/master/lib/plugins/httpHeaders.js
- https://github.com/prerender/prerender/blob/master/lib/plugins/removeScriptTags.js
This can be modified by creating your own server.js
and mounting this file as a docker volume:
docker run -p 3000:3000 -v $(pwd)/server.js:/home/node/server.js dhlabs/prerender
The prerender-memory-cache plugin is not activated by default.
You can activate it with the environment variable MEMORY_CACHE=1
.
You can customize cache behavior with environment variables :
- CACHE_MAXSIZE=1000 : max number of objects in cache
- CACHE_TTL=6000 : time to live in seconds
- PROXY_SERVER=string : passes
--proxy-server
flag to headless Chrome
docker run -p 3000:3000 -e MEMORY_CACHE=1 -e CACHE_MAXSIZE=1000 -e CACHE_TTL=6000 dhlabs/prerender
Check out the official Prerender documentation: https://github.com/prerender/prerender