Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/earlyclaim/docker-Manet
https://github.com/earlyclaim/docker-Manet
Last synced: 5 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/earlyclaim/docker-Manet
- Owner: earlyclaim
- Created: 2015-03-18T19:59:11.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-03-18T21:55:28.000Z (over 9 years ago)
- Last Synced: 2024-08-02T12:42:02.562Z (3 months ago)
- Size: 117 KB
- Stars: 15
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-starred - earlyclaim/docker-Manet - (others)
README
# docker-Manet
> There is only one true thing: instantly paint what you see. When you've got it, you've got it. When you haven't, you begin again. All the rest is humbug.
**docker-Manet** is the docker format of **Manet** REST API server which allows capturing screenshots of websites using various parameters. It is a good way to make sure that your websites are responsive or to make thumbnails.**docker-Manet** could use [PhantomJs](http://phantomjs.org) engines to work.
* **PhantomJS** runs on top of [WebKit](https://www.webkit.org) and [JavaScriptCore](http://trac.webkit.org/wiki/JavaScriptCore).
**docker-Manet** exposed port is 8891## REST API
REST API is available on "<$your docker ip>:<$your docker port>/" using:
* GET method
* POST method with `Content-Type`:
* *application/json*
* or *application/x-www-form-urlencoded*Few rules:
* The `"url"` parameter must be specified.
* Query parameters will be used in priority and override others.### Query parameters
- url
- Website address (URL). This is the only required parameter for the HTTP request. It is unnecessary for the most cases to configure scheme. Example: "github.com".
- width
- This property allows to change the width of the viewport, e.g., the size of the window where the webpage is displayed (default: 1024)
- height
- This property allows to change the height of the viewport. If width is defined and height is not defined, than full page will be captured.
- clipRect
- This property defines the rectangular area of the web page to be rasterized. Format: "top,left,width,height", example: "20,20,640,480".
- zoom
- Zoom factor of the webpage display. Setting a value to this property decreases or increases the size of the web page rendering. A value between 0 and 1 decreases the size of the page, and a value higher than 1 increases its size. 1 means no zoom (normal size). (default: 1).
- quality
- The compression quality. A number between 0 and 1 (default value: 1). Quality parameter doesn't work for PNG file format.
- delay
- Do a pause during the given amount of time (in milliseconds) after page opening (default: 100).
- format
- Indicate the file format for output image (default is "png"). Possible values: jpg, jpeg, png, gif, pdf
- agent
- String to define the "User-Agent" in HTTP requests. By default, it is something like:
-
PhantomJS: Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.0 (development) Safari/534.34 -
SlimerJS: Mozilla/5.0 (X11; Linux x86_64; rv:21.0) Gecko/20100101 SlimerJS/0.7
-
- headers
- This property specifies additional HTTP request headers that will be sent to the server for every request issued (for pages and resources). Format: "key1=value1;key2=value2;..." Headers names and values get encoded in US-ASCII before being sent. Please note that setting the 'User-Agent' will overwrite the value set via "agent" parameter.
- user
- User name to give to HTTP Basic authentication.
- password
- Password to give to HTTP Basic authentication.
- js
- false to deactivate javascript in web pages (default is true).
- images
- false to deactivate the loading of images (default is true).
- force
- Use the force reloading of web page without using cache (default is false).
- callback
- Return an empty response immediately (HTTP 200 OK), then send a POST request to the callback URL when the screenshot is ready (with image in the body).
### Query examples
For a quick test with the command line (using `curl`), type:
```bash
curl http://<$your docker ip>:<$your docker port>/?url=github.com > github.png
curl -H "Content-Type: application/json" -d '{"url":"github.com"}' http://<$your docker ip>:<$your docker port>/ > github.png
curl -H "Content-Type: application/x-www-form-urlencoded" -d 'url=github.com' http://<$your docker ip>:<$your docker port>/ > github.png
```
or (using `wget`)
```bash
wget http://<$your docker ip>:<$your docker port>/?url=github.com -O github.png
```
Here are some query examples that could be executed by any REST API client:
```
# Take a screenshot of the github.com.
GET /?url=github.com
# Custom viewport size. Return a 800x600 PNG screenshot of the github.com homepage.
GET /?url=github.com&width=800&height=600
# Clipping Rectangle. Return a screenshot clipped at [top=20, left=30, width=90, height=80]
GET /?url=github.com&clipRect=20%2C30%2C90%2C80
# Zoom rendered page in 2 times.
GET /?url=github.com&zoom=2
# Specify image output format.
GET /?url=github.com&format=jpeg
# Disable JavaScript. Return a screenshot with no JavaScript executed.
GET /?url=github.com&js=false
# Disable images. Return a screenshot without images.
GET /?url=github.com&images=false
# Custom User Agent.
GET /?url=github.com&agent=Mozilla%2F5.0+(X11%3B+Linux+x86_64)+AppleWebKit%2F537.36+(KHTML%2C+like+Gecko)+Chrome%2F34.0.1847.132+Safari%2F537.36
# HTTP Basic Authentication. Return a screenshot of a website requiring basic authentication.
GET /?url=mysite.com&user=john&password=smith
# Screenshot delay. Return a screenshot of the github.com homepage 1 second after it's loaded.
GET /?url=github.com&delay=1000
# Force page reloading. Return a screenshot without using file cache.
GET /?url=github.com&force=true
# Specify custom HTTP headers.
GET /?url=google.com&headers=User-Agent=Firefox;Accept-Charset=utf-8
# Asynchronous call.
GET /?url=github.com&callback=http://localhost:8891
```
## Sandbox UI
Sandbox UI is available on "/" by direct GET request without `"url"` query parameter.
It is a simple playground to build HTTP requests and try them.
Demo instance is available on [Heroku](https://heroku.com): [https://manet.herokuapp.com](https://manet.herokuapp.com/)
**docker-Manet** is prodly dockerized by
[https://earlyclaim.com](https://earlyclaim.com) RESERVE YOUR FAVORITE USERNAME IN NEW STARTUPS
the man behind it is Walter Franchetti [https://twitter.com/frnwtr](@frnwtr)