Public | Automated Build

Last pushed: a year ago
Short Description
Service that provides REST interface to imagemagick
Full Description


Image transformations service.

The first iteration goal:

  • Provide API to predefined operations implemented using imagemagick CLI.

Table of Contents


Using docker:

$ docker pull dpokidov/transformimgs


$ docker run -p 8080:8080 dpokidov/transformimgs

To test that application started successfully:

$ curl http://localhost:8080/health

You should get 'OK' string in the response.

At the moment application provides 4 operations that accessible through HTTP endpoints:

  • /img - optimises image
  • /img/resize - resizes image
  • /img/fit - resize image to the exact size by resizing and cropping it
  • /img/asis - returns original image

Detailed API docs are here -

Running the application locally from sources

$ docker-compose up

Building and Running from sources


$ go get
$ go get
$ cd $GOPATH/src/
$ godep restore
$ go run cmd/main.go -imConvert=/usr/bin/convert

Perfomance tests

There is a JMeter performance test that you can run against a service. To make it run

  • Run performance test environment:
    $ docker-compose -f docker-compose-perf-test.yml up
  • Run JMeter test:
    $ jmeter -n -t perf-test.jmx -l ./results.jmx -e -o ./results


You can go through API docs and try it out there as well. Use
API key MTg4MjMxMzM3MA__ to transform any images from

Go-swagger is used to generate swagger.json file from sources. To generate:

$ go get -u
$ cd cmd/
$ swagger generate spec -o ../swagger.json


Shout out with any ideas. PRs are more than welcome.




  • Consider using Zopfli for PNGs
Docker Pull Command
Source Repository