ghostblog Cookbook
A Chef cookbook for building and managing a Ghost blog.
Requirements
nodejs and Chef:
- nodejs
- Chef 11+
Platforms
- Ubuntu 14.04, 16.04
Cookbooks:
This cookbook depends on the following community cookbooks:
- nodejs '~> 2.4.0'
As of version 1.0 this cookbook is only tested on Ubuntu 12.04 & 14.04. As development is continued on CentOS,Debian and future Ubuntu versions will be supported. This cookbook is heavily configured via the attributes
Attributes
This cookbook's attributes are broken up into different categories.
General settings
node['ghost-blog']['install_dir']
- Installation directory for Ghost. Default is/var/www/html/ghost
node['ghost-blog']['version']
- Ghost blog version. Default islatest
. Will also take old versions0.5.9, 0.5.8, etc
Nginx settings
node['ghost-blog']['nginx']['dir']
- Nginx directory. Default is/etc/nginx
node['ghost-blog']['nginx']['script_dir']
- bin directory for scripts. Default is/usr/bin
node['ghost-blog']['nginx']['server_name']
- Nginx server name. Default isghostblog.com
node['ghost-blog']['nginx']['ssl']
-false
to disable SSL,true
to enable (and redirect http://yourblog.com to https://yourblog.com), and:both
to enable bothhttp
andhttps
side-by-side without redirect. Default istrue
.node['ghost-blog']['nginx']['ssl_certificate']
- The certificate file to use. Self-signed certificate will be generated if it does not exist. Default is/etc/nginx/ssl/yourblog.com.crt
node['ghost-blog']['nginx']['ssl_certificate_key']
- The key used to sign the certificate. Will be generated if it does not exist. Default is/etc/nginx/ssl/yourblog.com.key
.- node['ghost-blog']['nginx']['self_signed_ssl_certificate_subj']
- If a self-signed certificate is generated (which happens if you do not supply a certificate by placing the certificate in the specified location), this is the information that will be used to fill it out. Default is
/C=US/ST=Washington/L=Seattle/O=John Doe/OU=John Doe Industries/CN=*.yourblog.com/CN=yourblog.com`
Ghost app settings
node['ghost-blog']['app']['server_url']
- The full server URL to the Ghost app, including the port, and any custom path (e.g./blog
). Default ishttp://localhost:2368
node['ghost-blog']['app']['mail_transport_method']
- Ghost app mailing method. Default isSMTP
.node['ghost-blog']['app']['mail_service']
- Name of Mail service to use with nodemailer. Default isnil
. SupportsGmail
,SES
, &mailgun
.node['ghost-blog']['app']['mail_user']
- Username for select mail service. Default isnil
node['ghost-blog']['app']['mail_passwd']
- Password for selected mail user. Default isnil
node['ghost-blog']['app']['db_type']
- Type of database to use with Ghost. Default issqlite3
. Supportssqlite3
, andmysql
.
Ghost AWS SES settings
node['ghost-blog']['ses']['aws_secret_key']
- AWS Secret key. Default isnil
node['ghost-blog']['ses']['aws_access_key']
- AWS Access key. Default isnil
Ghost MySQL settings
Note about MySQL option
Creating a local MySQL server/database is outside the scope of this cookbook. I am assuming if you are using the mysql
option for node['ghost-blog']['app']['db_type']
that
you already have a MySQL elsewhere such as AWS RDS or on another server. You could always wrap this cookbook and create your own MySQL instance.
node['ghost-blog']['mysql']['host']
- MySQL host. Default is127.0.0.1
node['ghost-blog']['mysql']['user']
- MySQL user. Default isghost_blog
node['ghost-blog']['mysql']['passwd']
- MySQL password. Default isChangePasswordQuick!
node['ghost-blog']['mysql']['database']
- MySQL database name. Default isghost_db
node['ghost-blog']['mysql']['charset']
- MySQL charset. Default isutf8
Recipes
default
The main recipe. This will call all the additional recipes to configure and setup Ghost.
Usage
Using this cookbook is relatively straightforward. Add the default recipe to the run list of a node, or create a role.
Authors
- Author:: Cris Gallardo (c@cristhekid.com)