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


gozer (4) Versions 0.0.4

Build my workstation

cookbook 'gozer', '~> 0.0.4', :supermarket
cookbook 'gozer', '~> 0.0.4'
knife supermarket install gozer
knife supermarket download gozer
Quality 17%


This cookbook builds a workstation. It is customized to build a workstation for
me. That means if you are just like me, then this is just the cookbook for you.

What's it built on?

This cookbook was intended to used against a fresh install of xubuntu. But since
it's structured around ubuntu, really any flavor should work. Xubuntu just provides
a nice set of default apps that integrate well with everything else.

What's it provide?

It provides all the things I need or want on my workstations. Most configuration
is data bag driven. Generally configuration files are built and the contents then
stuffed into a data bag. Things get moved into templates as I find custom configs
are required/wanted between different machines. Stuff you get:


The i3 window manager. This is installed from a standalone cookbook.


Cone is a console email client. It's made by those courier folks. Configuration
of the .cone/conerc file is via data bag structured like:

# data_bags/gozer/conerc.json
  "id": "conerc",
  "content": "conerc_file_contents"


Finch is a console version of pidgin. I use it for all my IM needs. This recipe
basically takes care of IM related bits, so it will install finch plus Skype
and a campfire plugin for finch. It uses a couple data bags for configuration.
The skype item for skype and the purple item for finch:

# data_bags/gozer/skype.json
  "id": "skype",
  "username": "skype.username",
  "content": "~/.Skype/skype.username/config.xml"

# data_bags/gozer/purple.json"
  "id": "purple",
  "files": {
    "accounts.xml": "contents_of_dot_purple_accounts.xml",
    "prefs.xml": "contents_of_dot_purple_prefs.xml"


Installs firefox and adds the default extensions that I use. Extensions
are enabled globally for the firefox install. Related attributes:

  • node[:gozer][:firefox][:extension_dir] = '/usr/lib/firefox-addons/extensions'
  • node[:gozer][:firefox][:addons] = {:ghostery => 'https://addon_url.xpi'}

By default the following addons are installed:

  • ghostery
  • adblock
  • flashblock
  • noscript


Installs git and git-flow. Configures git and email. Attributes for
git config:

  • node[:gozer][:git][:name] = 'your name'
  • node[:gozer][:git][:email] = ''


Automatically pull repos from accounts and organizations as directed. Throws
them in a Projects directory within the user's home. Related attributes:

  • node[:gozer][:github][:accounts] = %w(chrisroberts spox)
  • node[:gozer][:github][:exclude][:chrisroberts] = %w(red_unicorn)
  • node[:gozer][:github][:allow_forks][:chrisroberts] = true

NOTE: Important note that github interactions are currently unauthenticated. That means
that only public repositories will be cloned.


Adds a helper script for gcalcli to easily display calendar and agenda in the console.
A data bag is used for configuration. It looks like this:

# data_bags/gozer/google.json
  "id": "google",
  "info": {
    "user": "",
    "password": "acct_pass"

A helper script that uses this info will be available in /usr/local/bin named
my_gcal and can be used:

  • my_gcal calendar -> Displays calendar and refreshes every hour
  • my_gcal agenda -> Displays agenda and refreshes every hour


Installs the weekly package builds of go.


Sets up all the junk required in the home directory like ssh keys and the like. Oh,
also creates the user.


Installs and loads configuration for irssi. Uses data bag for configuration:

# data_bags/gozer/irssi.json
  "id": "irssi",
  "content": "content_of_dot_irssi_config"


Easy addition and removal of packages:

  • node[:gozer][:packages] = %w(tmux moc) # packages to install
  • node[:gozer][:kill_pacakges] = %w(thunderbird) # packages to remove


Installs a global instance of RVM. Installs any requested gems into any available
RVM versions on the system.

  • node[:rvm][:gems] = %w(chef knife-ec2) # gems to install to rubies


Sets up the sudoers so no password is required


Does system related stuff. Sets hostname. Does apt-get upgrades if updates found.


Creates the user account defined. Provides some custom scripts in the user's bin
directory. Adds some files from data bags for .ssh and .chef:

# data_bags/gozer/chef.json
  "id": "chef",
  "files": {
    "my.pem": "contents",
    "other_file": "contents"

# data_bags/gozer/ssh_keys
  "id": "ssh_keys",
  "keys": {
    "id_rsa": "contents",
    "": "contents"


Installs and configures vim. Adds some plugins.

  • node[:gozer][:vim][:bundles] = %w(git://


Installs and configures emacs. Adds some plugins. Default installation package
is emacs24-nox which assumes ubuntu >= 12.10. Adds packages from marmalade.

  • node[:gozer][:emacs][:package_name] = 'emacs24-nox'
  • default[:gozer][:emacs][:marmalade_packages] = %w( starter-kit starter-kit-lisp starter-kit-bindings starter-kit-ruby rvm gist )


Installs virtualbox and related packages


Installs VPN software plus configuration files


A backup script is provided for rsyncing the user home directory to an external
device. The disk UUID is used for identification while mounting:

Other attributes

  • node[:gozer][:data_bag_name] = 'gozer'

This is the name used when finding data bag item configurations

  • `node[:gozer][:encrypted_bags] = %w(ssh_keys chef irssi)

This is the list of data bag items that are encrypted. By default all data bag items
used by the recipes are here.

  • node[:gozer][:github][:known_hosts] = []

The known hosts for dealing with github


Provides backup script for syncing home directory to disk. Uses disk UUID for
identification when mounting

  • node[:gozer][:backup][:uuid] = 'disk-uuid'


Dependent cookbooks

i3 >= 0.0.0
ohai >= 0.0.0
apt >= 0.0.0

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

Collaborator Number Metric

0.0.4 failed this metric

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

Contributing File Metric

0.0.4 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.0.4 failed this metric

FC009: Resource attribute not recognised: gozer/recipes/home.rb:3
FC043: Prefer new notification syntax: gozer/recipes/firefox.rb:17
FC043: Prefer new notification syntax: gozer/recipes/go.rb:3
FC043: Prefer new notification syntax: gozer/recipes/rvm.rb:14
FC043: Prefer new notification syntax: gozer/recipes/system.rb:8
FC047: Attribute assignment does not specify precedence: gozer/recipes/default.rb:33
FC047: Attribute assignment does not specify precedence: gozer/recipes/default.rb:34
FC047: Attribute assignment does not specify precedence: gozer/recipes/default.rb:35
FC047: Attribute assignment does not specify precedence: gozer/recipes/rvm.rb:38
FC064: Ensure issues_url is set in metadata: gozer/metadata.rb:1
FC065: Ensure source_url is set in metadata: gozer/metadata.rb:1
FC066: Ensure chef_version is set in metadata: gozer/metadata.rb:1
FC069: Ensure standardized license defined in metadata: gozer/metadata.rb:1
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any

No Binaries Metric

0.0.4 passed this metric

Testing File Metric

0.0.4 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.0.4 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