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

drone_app (2) Versions 1.0.0

Installs drone.io behind an nginx ssl proxy with letsencrypt certs

Berkshelf/Librarian
Policyfile
Knife
cookbook 'drone_app', '= 1.0.0'
cookbook 'drone_app', '= 1.0.0', :supermarket
knife cookbook site install drone_app
knife cookbook site download drone_app
README
Dependencies
Quality 50%

Description

Cookbook Version Build Status Code Climate Dependency Status

Installs the drone.io docker image with an nginx ssl proxy passthrough with certificiate registration and renewal managed by letsencrypt.

For more information about drone.io:

Changes

v1.0.0

  • Install an nginx ssl proxy in front of a drone.io server both configured via docker.

Requirements

Platform:

  • Ubuntu 16.04

Warning! Due to differences in letsencrypt implementations it's highly unlikely this cookbook will function on other platforms. I don't need anything other than Ubuntu 16.04, but pull requests are very welcome to resolve this issue.

Attributes

See attributes/default.rb for defaults.

  • node['drone']['version'] - The version of drone to install.
  • node['drone']['port'] - The drone.io web port.
  • node['drone']['remote']['driver'] - The drone.io remote driver
  • node['drone']['remote']['config'] - The drone.io remote config
  • node['drone']['database']['driver'] - The drone.io database driver
  • node['drone']['database']['config'] - The drone.io database config

Recipes

default

Installs and configures drone.io with nginx an ssl proxy using letsencrypt certificates.

Uses:

  1. recipe[drone_app::drone]
  2. recipe[drone_app::nginx]
  3. recipe[drone_app::letsencrypt]
  4. recipe[drone_app::firewall]

drone

Installs, configures, and runs the drone.io docker container.

nginx

Installs, configures, and runs the nginx docker container as an ssl proxy for drone.io. Configures itself with self-signed certificates.

The certificates referenced by nginx are controlled via symlinks located at /etc/nginx/ssl/<machine fqdn>/.

cert.pem - should link to the site public certificate chain. cert.key - should link to the site's private key.

If the symlinks already exist, this recipe will not create or update them.

letsencrypt

Installs the letsencrypt executable, configures it for webroot verification, requests a certificate for the node's FQDN, and updates the site's cert.pem and cert.key to point to the newly requested letsencrypt certificates.

firewall

Configure the machine firewall to allow SSH, HTTP, and HTTPS on ports 22, 80, and 443 repectively.

Usage

To get drone running on a machine, use recipe[drone_app]. Once it is installed and configured nginx will be listening on both port 80 and 443. Nginx will be configured to proxy to drone as well as provide a web frontend for letsencrypt renewal requests.

Author

Author:: Joe Bauser coderjoe@coderjoe.net

License

See the file LICENSE for license information.

Dependent cookbooks

drone ~> 3.1.2
docker ~> 2.9.6
openssl ~> 5.0.1
firewall ~> 2.5.2
hostname >= 0.0.0

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

Collaborator Number Metric
            

1.0.0 failed this metric

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

Foodcritic Metric
            

1.0.0 passed this metric