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

RSS

dokku (3) Versions 2.1.0

Manages a dokku install.

Berkshelf/Librarian
Policyfile
Knife
cookbook 'dokku', '~> 2.1.0'
cookbook 'dokku', '~> 2.1.0', :supermarket
knife cookbook site install dokku
knife cookbook site download dokku
README
Dependencies
Changelog
Quality

dokku

Build Status

This is a Chef cookbook which provides the ability to install and configure dokku. It provides a set of recipes and Lightweight Resource Providers (LWRPs) for managing apps and it's components.

It's pinned against a specific version of dokku to protect your installation against being accidentally broken. This marks a hold against the installed packages.

Usage

Recipes

  • dokku::default: Includes install and provides the LWRPs.
  • dokku::install: Installs and configures dokku from the Debian package.
  • dokku::ssh_keys: Adds SSH keys from attributes.
  • dokku::plugins: Manages plugins from attributes.
  • dokku::apps: Manages apps from attributes.
  • dokku::certificates: Manages certificates from a data bag.

Attributes

default

  • node["dokku"]["domain"]: The domain for Dokku to serve under.
  • node["dokku"]["ssh_keys"]: A list of ssh keys to allow for deployment.
  • node["dokku"]["plugins"]: A list of plugins to manage.
  • node["dokku"]["apps"]: A list of apps to manage.

These optional settings can be overridden to customise the default Nginx configuration (which is used for all apps):

  • node["dokku"]["nginx"]["server_tokens"]: Defaults to off.
  • node["dokku"]["nginx"]["ssl_session_cache"]: Defaults to shared:SSL:20m.
  • node["dokku"]["nginx"]["ssl_session_timeout"]: Defaults to 10m.
  • node["dokku"]["nginx"]["ssl_protocols"]: Defaults to TLSv1 TLSv1.1 TLSv1.2.
  • node["dokku"]["nginx"]["ssl_ciphers"]: Defaults to EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH.
  • node["dokku"]["nginx"]["dhparam_file"]: Defaults to /etc/ssl/certs/dhparam.pem.
  • node["dokku"]["nginx"]["dhparam_key_length"]: Defaults to 4096.

Data Bags

dokku_certificates

Used in combination with the dokku::certificates recipe, these allow for the management of SSL certificates apps. It's expected that they look like this:

{
  "id": "app-name",
  "cert": "",
  "key":
}

The id value should be the name of the app the certificate will set on. (The format is inspired by the certificate cookbook.)

LWRPs

ssh_key

Provides add and remove actions for setting the Dokku SSH public keys. Defaults to add. e.g.:

dokku_ssh_key "user" do
  key "ssh_public_key"
end

plugin

Provides install and uninstall actions for handling plugins. Defaults to install. e.g.:

dokku_plugin "redis" do
  url "https://github.com/dokku/dokku-redis.git"
end

app

Provides create, destroy and rename actions for managing Dokku apps. Defaults to create. e.g.:

dokku_app "demo"

certificate

Provides add and remove actions for managing Dokku certificates. Defaults to add: e.g.:

dokku_certificate "wildcard" do
  cert "An SSL Certificate as a string"
  key "An SSL Certificate's private key as a string"
end

The name of the action should be the id of an available data bag item.

Testing

ChefSpec is used for unit tests. Test Kitchen is used for integration tests, with serverspec.

# unit tests
chef exec rspec
# integration tests
chef exec kitchen test

Author

Copyright (c) Nick Charlton 2015. MIT licensed.

Dependent cookbooks

openssl ~> 4.4
packagecloud ~> 0.1
docker = 2.6.6
apt ~> 2.9

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

CHANGELOG

2.0.1 (31/05/2016)

  • Remove duplicate nginx configuration, breaking deploys.

2.0.0 (17/05/2016)

  • Check that SSH keys do not already exist before adding. (PR #16)
  • Remove support for global certificates. (PR #17)
  • Upgrade dokku to 0.5.6.
  • Upgrade herokuish to 0.3.12.
  • Upgrade sshcommand to 0.4.0.

1.3.0 (14/05/2016)

  • Fixes a bug where deleting apps would fail because it'd return a 1.
  • Adds support for specifying the "committish" of a plugin. (PR #13)
  • Brings the Nginx configuration inline instead of a dependency. (PR #14)

1.2.0 (18/04/2016)

  • Install and mark a hold on specific versions of dokku dependencies to guard against breakages (PR #11)
  • Fix test run issues with Docker (PR #12).

1.1.0 (05/03/2016)

  • Improves the provided SSL ciphers and adds an option for configuring SSL providers.
  • Includes generation of dhparams to safeguard against Weak DH attacks.

1.0.0 (19/02/2016)

  • Initial release.

Collaborator Number Metric
            

2.1.0 failed this metric

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

Contributing File Metric
            

2.1.0 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 http://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file

Foodcritic Metric
            

2.1.0 failed this metric

FC017: LWRP does not notify when updated: dokku/providers/app.rb:12
FC017: LWRP does not notify when updated: dokku/providers/app.rb:20
FC017: LWRP does not notify when updated: dokku/providers/app.rb:29
FC017: LWRP does not notify when updated: dokku/providers/certificate.rb:12
FC017: LWRP does not notify when updated: dokku/providers/certificate.rb:42
FC017: LWRP does not notify when updated: dokku/providers/nginx_template.rb:12
FC017: LWRP does not notify when updated: dokku/providers/plugin.rb:12
FC017: LWRP does not notify when updated: dokku/providers/plugin.rb:30
FC017: LWRP does not notify when updated: dokku/providers/ssh_key.rb:12
FC017: LWRP does not notify when updated: dokku/providers/ssh_key.rb:23
FC029: No leading cookbook name in recipe metadata: dokku/metadata.rb:14
FC029: No leading cookbook name in recipe metadata: dokku/metadata.rb:15
FC029: No leading cookbook name in recipe metadata: dokku/metadata.rb:16
FC029: No leading cookbook name in recipe metadata: dokku/metadata.rb:17
FC029: No leading cookbook name in recipe metadata: dokku/metadata.rb:18
FC059: LWRP provider does not declare use_inline_resources: dokku/providers/app.rb:1
FC059: LWRP provider does not declare use_inline_resources: dokku/providers/certificate.rb:1
FC059: LWRP provider does not declare use_inline_resources: dokku/providers/nginx_template.rb:1
FC059: LWRP provider does not declare use_inline_resources: dokku/providers/plugin.rb:1
FC059: LWRP provider does not declare use_inline_resources: dokku/providers/ssh_key.rb:1
FC064: Ensure issues_url is set in metadata: dokku/metadata.rb:1
FC065: Ensure source_url is set in metadata: dokku/metadata.rb:1
FC066: Ensure chef_version is set in metadata: dokku/metadata.rb:1
FC067: Ensure at least one platform supported in metadata: dokku/metadata.rb:1
FC069: Ensure standardized license defined in metadata: dokku/metadata.rb:1
Run with Foodcritic Version 10.3.1 with tags metadata,correctness ~FC031 ~FC045 and failure tags any

License Metric
            

2.1.0 passed this metric

No Binaries Metric
            

2.1.0 passed this metric

Publish Metric
            

2.1.0 passed this metric

Supported Platforms Metric
            

2.1.0 failed this metric

dokku should declare what platform(s) it supports.

Testing File Metric
            

2.1.0 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 http://github.com/user/repo, and your repo must contain a TESTING.md file

Version Tag Metric
            

2.1.0 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 http://github.com/user/repo, and your repo must include a tag that matches this cookbook version number