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


camo (6) Versions 0.9.3

Configures camo - a small http proxy to simplify routing images through an SSL host

cookbook 'camo', '~> 0.9.3', :supermarket
cookbook 'camo', '~> 0.9.3'
knife supermarket install camo
knife supermarket download camo
Quality 50%

camo cookbook

Cookbook Version
Dependency Status
Build Status
Join the chat at


Installs Camo - a small http proxy to simplify routing images through an SSL host


The dependencies are assumed to be downloaded from the Chef Supermarket cookbook repository.


Usually you would run this behind a web server proxy, such as apache2, nginx, varnish etc.

In a wrapper cookbook add this cookbook as a dependency and include the default recipe

include_recipe 'camo::default'

Then add any attributes below that you will want to change to the defaults you use internally. Specifically you should override camo.key at a minimum.
Depending on your use case, you may want to add a recipe in your wrapper cookbook that deals with the web server proxy setup.



  • node['camo']['user'] = "camo" - user to run camo as, the cookbook will create the user if it does not exist.
  • node['camo']['group'] = "users" - group used on directory creation.
  • node['camo']['install_method'] = 'deploy_revision' - method for installing camo: either package or deploy_revision.
  • node['camo']['init_style'] - attempts to pick the platform default, but otherwise can be defined as upstart, systemd or runit


These are configuration parameters that will be passed directly to camo via the init scripts.
Please see the camo documentation for more details on these attributes.

  • node['camo']['port'] = 8081
  • node['camo']['header_via'] = nil
  • node['camo']['key'] = '0x24FEEDFACEDEADBEEFCAFE'
  • node['camo']['logging'] = "disabled"
  • node['camo']['length_limit'] = 5242880
  • node['camo']['max_redirects'] = 4
  • node['camo']['socket_timeout'] = 10
  • node['camo']['timing_allow_origin'] = nil
  • node['camo']['hostname'] = "unknown"
  • node['camo']['keep_alive'] = false

Init Style: Systemd

  • node['camo']['systemd']['env_path'] = '/etc/sysconfig'

Install Method: Deploy Revision

This install methods installs directly from source. It is highly recommended that if you use this method that you specify a particular camo.branch and
your own fork via camo.repo. This will minimize impact of changes by upstream that you do not control.

  • node['camo']['path'] = "/srv/camo" - location where to install camo
  • node['camo']['deploy_user'] = "root" - user who will run git and own the deployed repo.
  • node['camo']['deploy_group'] = "users" - group who will own the deployed repo.
  • node['camo']['deploy_migrate'] = false - do not run deploy_revision migrations
  • node['camo']['deploy_action'] = "deploy" - action to pass to the deploy_revision resource.
  • node['camo']['repo'] = "git://" - location of the camo git repo.
  • node['camo']['branch'] = "master" - the branch or tag to clone


We have written unit tests using chefspec and integration tests in serverspec executed via test-kitchen. Much of the tooling around this cookbook is exposed via guard and test kitchen, so it is highly recommended to learn more about those tools. The easiest way to get started is to install the Chef Development Kit

Running tests

The following commands will run the tests:

chef exec bundle install
chef exec rubocop
chef exec foodcritic .
chef exec rspec
chef exec kitchen test default-ubuntu-1604
chef exec kitchen test default-centos-84

The above will do ruby style (rubocop) and cookbook style (foodcritic) checks followed by rspec unit tests ensuring proper cookbook operation. Integration tests will be run next on two separate linux platforms (Ubuntu 14.04 LTS Precise 64-bit and CentOS 7.2). Please run the tests on any pull requests that you are about to submit and write tests for defects or new features to ensure backwards compatibility and a stable cookbook that we can all rely upon.

Running tests continuously with guard

This cookbook is also setup to run the checks while you work via the guard gem.

bundle install
bundle exec guard start

Dependent cookbooks

nodejs >= 0.0.0
git >= 0.0.0
runit >= 0.0.0

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

camo Cookbook Changelog

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

v0.9.2 (2016-10-30)

  • update rspec tests to match v0.9.2 changes

v0.9.2 (2016-10-30)

  • Use /etc/default for env path on debian/ubuntu systems
  • Write systemd service to /etc/systemd/system not /usr/lib/systemd/system
  • Added tests for Ubuntu 16.04 LTS (Xenial)
  • Update deploy_revision to v2.3.0 of camo
  • Update cookbook and gem dependencies

v0.9.1 (2015-03-18)

  • Fix build dependencies causing travis ci builds to fail.

v0.9.0 (2015-03-18)

  • [GH-6] Added CentOS Support, cookbook now depends on runit
  • [GH-6] Changed camo.user default to camo and create the user if it does not exist.
  • [GH-6] Added camo.init_style to allow for runit and systemd in addition to previous upstart
  • Update to camo v2.2.0 and add camo.keep_alive attribute support

v0.2.0 (2014-10-29)

  • Added camo.install_method which can be package or deploy_revision
  • Added camo.header_via, camo.length_limit, camo.socket_timeout, camo.timing_allow_origin attributes
  • Removed camo.host_exclusions attribute (no longer supported by camo)
  • FC045: Set cookbook name in metadata
  • Changed default deploy_user to root
  • Added dependency on git for deploy_revision
  • Update Development environment with Berkshelf, ChefSpec, Test-Kitchen

v0.1.0 (2012-11-10)

  • Initial Release

Collaborator Number Metric

0.9.3 passed this metric

Contributing File Metric

0.9.3 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.9.3 passed this metric

No Binaries Metric

0.9.3 passed this metric

Testing File Metric

0.9.3 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.9.3 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