Couchmagick runs ImageMagicks convert on CouchDB documents. Reliable.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Johannes J. Schmidt 4d07f9b026 update couchmagick-listen 11 years ago
.gitignore Initial commit 11 years ago
.jshintrc Initial commit 11 years ago
README.md Add notes on installing ImageMagick 11 years ago
index.js Correctly handle concurrency 11 years ago
package.json update couchmagick-listen 11 years ago

README.md

couchmagick

Run ImageMagicks convert on CouchDB documents.

Installation

Make sure you have ImageMagick installed, eg on Debian:

apt-get install imagemagick

Install couchmagick via npm:

npm install couchmagick -g

Daemon Configuration

Add couchmagick to os_daemons config section:

[os_daemons]
couchmagick = couchmagick

Now CouchDB takes care of the couchmagick process.

[couchmagick]
; Optional username and password
username = mein-user
password = secure
; Number of simultanous streams. Default is 1.
streams = 8
; Concurrency level (number of simultanous convert processes). Default is 1
concurrency = 8
; Timeout in ms. Default is 10000
timeout = 1000
; Batch size. Default is 100
limit = 10

Imagemagick Configuration

Add a couchmagick property to a design document. couchmagick will process all databases which have such a design document.

{
  "_id": "_design/my-couchmagick-config",
  "_rev": "1-a653b27246b01cf9204fa9f5dee7cc64",
  "couchmagick": {
    "filter": "function(doc) { return doc.type === 'post'; }",
    "versions": {
      "thumbnail": {
        "filter": "function(doc, name) { return doc.display && doc.display.indexOf('overview') > -1; }",
        "id": "{id}/thumbnail",
        "name": "{basename}-thumbnail.jpg",
        "content_type": "image/jpeg",
        "args": [
          "-",
          "-resize", "x100",
          "-quality", "75",
          "-colorspace", "sRGB",
          "-strip",
          "jpg:-"
        ]
      }
    }
  }
}

See couchmagick-stream for available options;

Contributing

Lint your code via npm run jshint.

License

Copyright (c) 2012-2013 Johannes J. Schmidt, null2 GmbH

Licensed under the MIT license.