Forge Home

ghost

Install, manage and configures multiple ghost blog instances

10,297 downloads

8,837 latest version

3.1 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Support the Puppet Community by contributing to this module

You are welcome to contribute to this module by suggesting new features, currency updates, or fixes. Every contribution is valuable to help ensure that the module remains compatible with the latest Puppet versions and continues to meet community needs. Complete the following steps:

  1. Review the module’s contribution guidelines and any licenses. Ensure that your planned contribution aligns with the author’s standards and any legal requirements.
  2. Fork the repository on GitHub, make changes on a branch of your fork, and submit a pull request. The pull request must clearly document your proposed change.

For questions about updating the module, contact the module’s author.

Version information

  • 1.1.0 (latest)
  • 1.0.5
  • 1.0.4
  • 1.0.3
  • 1.0.2
  • 1.0.1
released Jun 29th 2015
This version is compatible with:
  • Puppet >=3.4.0 < 4.0.0
  • Archlinux, , , , , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'justin8-ghost', '1.1.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add justin8-ghost
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install justin8-ghost --version 1.1.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

justin8/ghost — version 1.1.0 Jun 29th 2015

Puppet Forge Build Status

Justin8-Ghost

Table of Contents

  1. Overview
  2. Module Description
  3. Setup - The basics of getting started with ghost
  4. Usage - Configuration options and additional functionality
  5. Limitations - OS compatibility, etc.
  6. 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.