Version information
This version is compatible with:
- Puppet >=3.4.0 < 4.0.0
- Archlinux, , , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'justin8-ghost', '1.1.0'
Learn more about managing modules with a PuppetfileDocumentation
Justin8-Ghost
Table of Contents
- Overview
- Module Description
- Setup - The basics of getting started with ghost
- Usage - Configuration options and additional functionality
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
Overview
This module installs, configures and manages instances of Ghost blog. It is originally written for Archlinux but will work on any systemd system.
Module Description
Ghost is a pure blogging platform based on NodeJS. This module provides a simplified way of creating configurations to manage any number of instances of Ghost.
This module is for any system with systemd OR docker. Everything is run in standard locations as per file-hierarchy and systemd standards. Any other dependencies (nodejs and optionally docker currently) are managed by upstream Puppet modules.
Setup
What ghost affects
This module can affect nodejs and optionally docker as it will install these as required.
Setup Requirements
Puppetlabs-nodejs can be included but is not necessary so long as npm is available on the system.
Garethr-docker is required for using the docker service_type.
Beginning with ghost
The most basic configuration is as follows:
include ghost
ghost::instance { 'test':
url => 'https://blog.foo-bar.com'
}
Usage
Ghost::Instance
After including the parent ghost module on your node, you can create multiple instances of Ghost using ghost::instance. The options you can specify are below:
url The URL where this instance will be hosted. e.g. 'https://blog.example.com'. (Required)
user The user which this instance will run as and which will own all files (Optional)
group The group which this instance will run as and which will own all files (Optional)
home The home in which all files will reside. (Optional)
service_type Can be either 'systemd' or 'docker'. Locations of data will remain the same for user data, However, if it is set to 'docker' the host IP will always be 0.0.0.0 due to limitations in docker.
version The version of ghost to install. Specifying a new version will update installed instances to the new (or old) version. (Optional)
host Host IP to listen on. (Optional) Defaults to localhost. This is ignored when service_type = docker
port Default port to listen on. (Optional) Defaults to 2368.
transport Mail transport option. (Optional) See http://docs.ghost.org/mail/
from Mail from option. (Optional) See http://docs.ghost.org/mail/
mail_options Mail misc options. Accepts a hash of options. (Optional) See http://docs.ghost.org/mail/
Updates
By specifying a newer version of Ghost you can upgrade an instance. Copies of the new version are only downloaded once per host with systemd service type. Updates follow the release process outlined by the Ghost documentation.
If service type is set to docker then the specified image version will be pulled and used for the service.
Limitations
This has been tested thoroughly on Archlinux but is designed to work on any machine using systemd or docker. The latest releases of most major distros should work without issue for the systemd service_type:
- Archlinux
- Fedora 18+
- RedHat 7+ and derivatives
- Debian 8+
- Ubuntu 15.04+
Any distros supported by garethr/docker will work with service_type = docker.
Currently only basic mail servers are supported. Ghost itself supports things like mailgun and gmail directly. This module does not yet support that.
Development
Licensed under the MIT license. Pull requests are more than welcome.
Dependencies
- puppetlabs/stdlib (>= 3.0.0 < 5.0.0)
- puppetlabs/nodejs (>= 1.0.0 < 2.0.0)
- justin8/systemd (>= 0.0.1 < 1.0.0)
- garethr/docker (>= 4.0.0 < 5.0.0)