Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status


thumbor_ng (15) Versions 0.4.2

Installs/Configures Thumbor

cookbook 'thumbor_ng', '~> 0.4.2', :supermarket
cookbook 'thumbor_ng', '~> 0.4.2'
knife supermarket install thumbor_ng
knife supermarket download thumbor_ng
Quality 17%

thumbor_ng Cookbook

Cookbook Build Status

This is a Chef Cookbook to Install and Configure Thumbor.

This cookbook was heavily inspired from thumbor cookbook maintained by Zanui.

For Production environment, always prefer the most recent release.


Supported OS

Currently cookbook only supports Ubuntu 12.04 & 14.04.

Supported Install Methods

This cookbook only supports pip based installation. As mentioned in Thumbor wiki, new release is
always available via pip. Other install methods like source code or package are not
incorporated in this cookbook.

Major Changes


Redis setup is not in the scope of this cookbook and hence redisio cookbook
dependency has been removed.


  • thumbor_ng::default - default cookbook run_list recipe

  • thumbor_ng::install - install packages required for thumbor

  • thumbor_ng::user - setup user for thumbor service

  • thumbor_ng::config - setup and mange thumbor configuration

  • thumbor_ng::monit - setup monit checks for nginx/thumbor using cookbook monit-ng

  • thumbor_ng::nginx - setup and manage frontend proxy nginx for thumbor using cookbook nginx

  • <del> thumbor_ng::haproxy - setup and mange fronend proxy haproxy for thumbor, not completed yet </del>

  • <del> thumbor_ng::varnish - setup and mange fronend proxy varnish for thumbor, not completed yet </del>

For run_list use recipe[thumbor_ng::default] or recipe[thumbor_ng]

Cookbook Advanced Attributes

  • default['thumbor_ng']['proxy'] (default: nginx): thumbor service front end proxy, currently only supports nginx

  • default['thumbor_ng']['storage']['type'] (default: file): thumbor storage type

  • default['thumbor_ng']['init_style'] (default: upstart): thumbor service manager, options: initd upstart

  • default['thumbor_ng']['notify_restart'] (default: true): notify thumbor service on a resource change

  • default['thumbor_ng']['setup_user'] (default: true): setup user for thumbor service

  • default['thumbor_ng']['monit']['enable'] (default: false): enables monit checks for nginx and thumbor service using cookbook - monit-ng

  • <del> default['thumbor_ng']['queue']['type'] (default: redis): thumbor detector queue type, option complete setup not tested yet </del>

Cookbook Core Attributes

  • default['thumbor_ng']['version'] (default: 6.1.5): Thumbor release version

  • default['thumbor_ng']['workers'] (default: node['cpu']['total']): # of thumbor processes, default utilizes all CPU cores

  • default['thumbor_ng']['base_port'] (default: 9000): thumbor service base port to spawn multiple processes

  • default['thumbor_ng']['key'] (default: ``): thumbor secret key file content

  • <del> default['thumbor_ng']['log_dir'] (default: /var/log/thumbor): thumbor logs directory, not yet tested </del>

  • default['thumbor_ng']['service_name'] (default: thumbor): thumbor service name

  • default['thumbor_ng']['install_method'] (default: pip): thumbor install method

  • default['thumbor_ng']['listen_address'] (default: inet for thumbor service, change it with caution

  • default['thumbor_ng']['binary'] (default: /usr/local/bin/thumbor): thumbor binary location for thumbor service

  • default['thumbor_ng']['upstart_respawn'] (default: true): respawn service if goes down

  • default['thumbor_ng']['conf_file'] (default: /etc/thumbor.conf): thumbor configuration file

  • default['thumbor_ng']['key_file'] (default: /etc/thumbor.key): thumbor key file

  • default['thumbor_ng']['group'] (default: thumbor): thumbor service group

  • default['thumbor_ng']['user'] (default: thumbor): thumbor service user

  • default['thumbor_ng']['user_home'] (default: nil): thumbor service user home directory

  • default['thumbor_ng']['pip_dependencies'] (default: ['remotecv', 'graphicsmagick-engine', 'opencv-engine']): thumbor pip dependencies, user may add custom pip packages

Cookbook apt Repositories Attributes

  • default['thumbor_ng']['apt']['thumbor']['uri'] (default: repo uri

  • default['thumbor_ng']['apt']['thumbor']['distribution'] (default: node['lsb']['codename']): repo distribution

  • default['thumbor_ng']['apt']['thumbor']['keyserver'] (default: repo keyserver

  • default['thumbor_ng']['apt']['thumbor']['components'] (default: [main]): repo components

  • default['thumbor_ng']['apt']['thumbor']['key'] (default: 68DFB11CCBEC8F27): repo key

  • default['thumbor_ng']['apt']['thumbor']['deb_src'] (default: false): whether to fetch source

  • default['thumbor_ng']['apt']['thumbor']['action'] (default: add): apt_repository resource action

  • default['thumbor_ng']['apt']['multiverse']['uri'] (default: repo uri

  • default['thumbor_ng']['apt']['multiverse']['distribution'] (default: node['lsb']['codename']): repo distribution

  • default['thumbor_ng']['apt']['multiverse']['keyserver'] (default: repo keyserver

  • default['thumbor_ng']['apt']['multiverse']['components'] (default: [main multiverse restricted universe]): repo components

  • default['thumbor_ng']['apt']['multiverse']['key'] (default: 40976EAF437D05B5): repo key

  • default['thumbor_ng']['apt']['multiverse']['deb_src'] (default: false): whether to fetch source

  • default['thumbor_ng']['apt']['multiverse']['action'] (default: add): apt_repository resource action

Cookbook thumbor Service Ulimit Attributes

  • default['thumbor_ng']['limits']['memlock'] (default: unlimited): thumbor service memory limit

  • default['thumbor_ng']['limits']['nofile'] (default: 48000): thumbor service file limit

  • default['thumbor_ng']['limits']['nproc'] (default: unlimited): thumbor service proc limit

Cookbook nginx Attributes

  • default['nginx']['default_site_enabled'] (default: false): disable default nginx site

  • default['nginx']['worker_connections'] (default: 4096): nginx worker connections

  • default['thumbor_ng']['nginx']['port'] (default: 80): nginx port

  • default['thumbor_ng']['nginx']['server_name'] (default: node['fqdn']): nginx thumbor vhost server name

  • default['thumbor_ng']['nginx']['client_max_body_size'] (default: 10M): nginx thumbor vhost client max body

  • default['thumbor_ng']['nginx']['proxy_read_timeout'] (default: 300): nginx thumbor vhost proxy read timeout

  • default['thumbor_ng']['nginx']['proxy_cache']['enabled'] (default: false): enable proxy cache in nginx thumbor vhost

  • default['thumbor_ng']['nginx']['proxy_cache']['path'] (default: /var/www/thumbor_cache): nginx thumbor vhost proxy cache location

  • default['thumbor_ng']['nginx']['proxy_cache']['key_zone'] (default: thumbor_cache): nginx thumbor vhost proxy cache key zone

  • default['thumbor_ng']['nginx']['vhost']['cookbook'] (default: thumbor_ng): nginx thumbor vhost template cookbook name

  • default['thumbor_ng']['nginx']['vhost']['template'] (default: nginx.thumbor.vhost.erb): nginx thumbor vhost template name

  • default['thumbor_ng']['nginx']['vhost']['variables'] (default: {}): nginx thumbor vhost template variables

  • default['thumbor_ng']['nginx']['enable_status'] (default: false ): enable nginx/nginx_status`
    For more nginx attributes, check out nginx cookbook

Cookbook monit Attributes

Monit checks for thumbor and nginx (or haproxy or varnish).

    For more monit checks attributes & configuration, check out monit-ng cookbook

Cookbook thumbor Default Configuration Attributes

  • default['thumbor_ng']['options']['FILE_STORAGE_ROOT_PATH'] (default: /var/lib/thumbor/file_storage): thumbor file storage location

  • default['thumbor_ng']['options']['RESULT_STORAGE_FILE_STORAGE_ROOT_PATH'] (default: /var/lib/thumbor/result_storage): thumbor result file storage location

Cookbook thumbor File Storage Purge Cron Attributes

  • default['thumbor_ng']['cron']['minute'] (default: 0): cron attribute

  • default['thumbor_ng']['cron']['hour'] (default: 03): cron attribute

  • default['thumbor_ng']['cron']['day'] (default: *): cron attribute

  • default['thumbor_ng']['cron']['month'] (default: *): cron attribute

  • default['thumbor_ng']['cron']['user'] (default: root): cron attribute

  • default['thumbor_ng']['cron']['path'] (default: nil): cron attribute

  • default['thumbor_ng']['cron']['shell'] (default: nil): cron attribute

  • default['thumbor_ng']['cron']['mailto'] (default: nil): cron attribute

  • default['thumbor_ng']['cron']['home'] (default: nil): cron attribute

  • default['thumbor_ng']['cron']['action'] (default: :delete): disable by default

Cookbook Dependencies

  • apt
  • python
  • nginx
  • ulimit
  • monit-ng


  • Add support for RHEL platform family
  • Add HAProxy frontend proxy
  • Add Varnish frontend proxy


  1. Fork the repository on Github
  2. Create a named feature branch (like add_component_x)
  3. Write your change
  4. Write tests for your change (if applicable)
  5. Run the tests (rake), ensuring they all pass
  6. Write new resource/attribute description to
  7. Write description about changes to PR
  8. Submit a Pull Request using Github

Authors:: Virender Khatri and Contributors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.

Dependent cookbooks

apt >= 0.0.0
python >= 0.0.0
nginx >= 0.0.0
ulimit >= 0.0.0
monit-ng >= 0.0.0
cron >= 1.2.0

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

thumbor_ng CHANGELOG

This file is used to list changes made in each version of the thumbor_ng cookbook.


  • Virender Khatri - bump thumbor version to 6.1.5

  • Virender Khatri - fix rubocop

  • Virender Khatri - add issue_url and source_url


  • Virender Khatri - bump thumbor version to 5.0.6


  • Virender Khatri - bump thumbor version to 5.0.4

  • Virender Khatri - removed redisio dependency


  • Virender Khatri - bump thumbor version to 5.0.3

  • Virender Khatri - fix rubocop error


  • Virender Khatri - disable nginx status by default, added optional attribute


  • Virender Khatri - bump thumbor version to v4.12.2

  • Richard Lee - PR #10, added nginx status


  • Virender Khatri - added gifsicle package for gif images

  • Virender Khatri - bump thumbor version to v4.8.6

  • Virender Khatri - temporarily fix to keep travis status green


  • Richard Lee - PR #9, made pip dependencies configurable via attribute node['thumbor_ng']['pip_dependencies']


  • Richard Lee - PR #8, added pip package for opencv-engine

  • Virender Khatri - bump thumbor version to 4.8.0


  • Virender Khatri - added cron job for purging thumbor file storage

  • Virender Khatri - bump thumbor version to 4.7.1


  • Virender Khatri - fixing ulimit for nginx, issue #4

  • Virender Khatri - updated thumbor nginx vhost to probable cause of 499 errors


  • Virender Khatri - fixed thumbor service over writes worker logs issue

  • Virender Khatri - fixed thumbor service ulimit, added to worker upstart init

  • Virender Khatri - added key for saucy thumbor ppa

  • Virender Khatri - added logrotate resource for nginx, required for custom log, perhaps nginx cookbook
    would be the right place to fix this.


  • Virender Khatri - added travis ci support

  • Virender Khatri - fixed foodcritic


  • Virender Khatri - bump thumbor version to 4.6.0

  • Virender Khatri - added log level attribute default['thumbor_ng']['log_level']

  • Virender Khatri - added support for ubuntu 14.04

  • Virender Khatri - filtered packages dependecnies for ubuntu 12+

  • Virender Khatri - thumbor service config file classified for node['platform_family']

  • Virender Khatri - Removed default attributes with default values


  • Virender Khatri - First commit

Check the Markdown Syntax Guide for help with Markdown.

The Github Flavored Markdown page describes the differences between markdown on github and standard markdown.

Collaborator Number Metric

0.4.2 failed this metric

Failure: Cookbook has 0 collaborators. A cookbook must have at least 2 collaborators to pass this metric.

Contributing File Metric

0.4.2 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of, and your repo must contain a file

Foodcritic Metric

0.4.2 failed this metric

FC066: Ensure chef_version is set in metadata: thumbor_ng/metadata.rb:1
FC069: Ensure standardized license defined in metadata: thumbor_ng/metadata.rb:1
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any

No Binaries Metric

0.4.2 passed this metric

Testing File Metric

0.4.2 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of, and your repo must contain a file

Version Tag Metric

0.4.2 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of, and your repo must include a tag that matches this cookbook version number